Vstupní a výstupní operace (1)

Slides:



Advertisements
Podobné prezentace
Práce se soubory. * soubory patří k základním datovým prvkům v počítači * převážná většina programovacích jazyků má podporu určité formy práce se soubory.
Advertisements

A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Inf Používání a tvorba databází. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
Warez scéna, crack. Warez, co to je? Warez je termín počítačového slangu označující autorská díla, se kterými je nakládáno nelegálně, zejména v rozporu.
Programové období 2014 – 2020 a proces SEA Mgr. Zuzana Plešková Ministerstvo životního prostředí 14. února 2014.
Informatika pro 5. ročník Úvod do světa počítačů - Hardware.
Inf Tabulkový procesor - funkce. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
Systém správy dokumentace akreditované zkušební laboratoře Bc. Jan Randl, 4912.
Název školyZákladní škola praktická Rožnov pod Radhoštěm Číslo projektuCZ / / Číslo materiáluVY_32_INOVACE_225 AutorMgr. Romana Rybiařová.
Výukový materiál zpracovaný v rámci projektu EU peníze školám Registrační číslo projektu:CZ.1.07/1.4.00/ Šablona:III/2 Inovace a zkvalitnění výuky.
Funkce Lineární funkce a její vlastnosti 2. Funkce − definice Funkce je předpis, který každému číslu z definičního oboru, který je podmnožinou množiny.
Řetězce v jazyce C ● řetězec je posloupnost znaků ● řetězcové konstanty se v C vkládají mezi uvozovky, např. "Ahoj Hugo!" ● v paměti je řetězec uložen.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 10: Tvorba vlastních funkcí Bc. Radek Libovický.
OPERAČNÍ SYSTÉMY Část 5 – souborové systémy
Microsoft Excel verze 2010 Mgr. Přemysl Kejzlar.
Základy automatického řízení 1
Výukový materiál zpracován v rámci projektu
Technické vybavení počítače - Počítač PC
Výukový materiál zpracován v rámci projektu
Software počítače – opakování
Evaluace předmětů studenty (Anketky)
Batové dávky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Vojtěch Mrózek. Dostupné z Metodického portálu ISSN: ,
Lineární funkce - příklady
UNIX 7. Soubory a proudy © Milan Keršláger
Výukový materiál zpracován v rámci projektu
ORGANIZACE DAT V POČÍTAČI
Přetěžování Datové typy.
Kurz algoritmizace a programování v jazyce C
Programování a simulace CNC strojů I.
Číslo projektu CZ.1.07/1.4.00/ Název sady materiálů
Programování v jazyce C++
Struktury.
Pseudonáhodná čísla (1)
Výukový materiál zpracován v rámci projektu
Databáze MS ACCESS 2010.
Uložení dat v PC -Binární (dvojkový) systém-
Procvičení vzorců a funkcí v rámci jednoho i více listů
Algoritmizace a programování
Datové typy v jazyce C Datové typy void skalární aritmetické
Souběh Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Lexikální atomy jazyka C
Řetězce (24) Funkce strchr: deklarována v: string.h
Inf Vývojový diagram.
Výukový materiál zpracován v rámci projektu
SÁRA ŠPAČKOVÁ MARKÉTA KOČÍBOVÁ MARCELA CHROMČÁKOVÁ LUKÁŠ BARTOŠ B3E1
1. ročník oboru Mechanik opravář motorových vozidel
Číslo projektu CZ.1.07/1.5.00/ Číslo materiálu
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
UNIX 7. Deskriptory a proudy
Informatika pro ekonomy přednáška 8
Výukový materiál zpracován v rámci projektu
Stahování eBooks ~ Podrobný průvodce prvním stahováním
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
Programovatelné automaty (Programmable logic controllers – PLC)
Dotazovací jazyk SQL I.
1.
Remote login.
A5M33IZS – Informační a znalostní systémy
Fronta (1) Dynamická datová struktura typu FIFO (First In First Out)
MS Access Tabulka letní semestr 2013.
Datové typy v jazyce C Datové typy void skalární aritmetické
Lineární funkce a její vlastnosti
Informatika – Základní operace s buňkami
Vstupní a výstupní operace (1)
Řetězce (1) Řetězec (string) je posloupnost znaků (hod-not typu char)
Algoritmizace a datové struktury (14ASD)
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

Vstupní a výstupní operace (1) Jazyk C poskytuje sadu V/V (vstupních/vý-stupních) operací, které jsou založeny na koncepci tzv. proudů (stream) Proudem může být soubor nebo jiný zdroj, resp. příjemce dat (včetně terminálu nebo jiného fyzického zařízení) Informace o proudu jsou ukládány v dato-vém typu FILE (struktura definovaná v hla-vičkovém souboru stdio.h) 08/05/2018

Vstupní a výstupní operace (2) Mezi informacemi, které jsou ukládány ve struktuře FILE, je např.: současná pozice v rámci proudu (tzv. indikátor pozice): určuje, od jakého místa bude prováděn zápis, resp. od jakého místa bude prováděno čtení každá operace čtení (zápisu) provede posunutí indiká-toru pozice za poslední načtený (zapsaný) znak (byte) ukazatel na připojené vyrovnávací paměti indikátor chyby indikátor konce souboru 08/05/2018

Vstupní a výstupní operace (3) Existují dva formáty proudů: textový: posloupnost znaků, která je rozdělena do řádků (pro-měnlivé délky) každý řádek se skládá z žádného, jednoho nebo více znaků následovaných znakem nový řádek ’\n’ binární: posloupnost hodnot typu char (hodnoty typu char jsou celá čísla a zaujímají v operační paměti 1 B) libovolná data v jazyku C se mohou převést na pole hodnot typu char (na posloupnost bytů) může transparentně zaznamenat interní data 08/05/2018

Vstupní a výstupní operace (4) Jakmile dojde ke spuštění programu v jazy-ku C, automaticky se pro něj otevírají tři předdefinované proudy: stdin: standardní vstup obvykle je pro něj použita klávesnice počítače stdout: standardní výstup většinou reprezentuje obrazovku monitoru stderr: standardní výstup pro chybová hlášení obvykle spojen s obrazovkou monitoru 08/05/2018

Práce se soubory (1) Programy v jazyku C mohou (prostřednict-vím proudů) přistupovat k datům uloženým v souborech, které se nacházejí na externích paměťových médiích (FD, HDD, CD, DVD, BD, tape apod.) Data ze souborů mohou být načítána do ope-rační paměti, kde je provedeno jejich zpraco-vání, a rovněž mohou být z operační paměti do souborů zapisována 08/05/2018

Práce se soubory (2) Pro práci se soubory je zapotřebí v programu definovat proměnnou jako ukazatel na hod-notu typu FILE Přiklad: FILE *soubor; definuje proměnnou soubor, která může následně sloužit pro práci se souborem uloženým na externím paměťovém médiu Se soubory (proudy) lze pracovat pomocí knihovních funkcí 08/05/2018

Práce se soubory (3) Funkce fopen: deklarována v: stdio.h prototyp: FILE *fopen(const char *fname, const char *mode); funkce: otevírá (popř. vytváří) soubor se jménem fname v re-žimu mode otevřený (vytvořený) soubor je pak spojen s proudem parametr mode může nabývat hodnoty: ”r” – otevírá soubor pro čtení (soubor musí existovat) ”w” – vytváří nový (prázdný) soubor pro zápis – jestliže soubor již existuje, pak je přepsán soubo- rem novým 08/05/2018

Práce se soubory (4) ”a” – otevírá existující soubor pro přidání dat na jeho konec – jestliže soubor neexistuje, pak je vytvořen nový (prázdný) soubor, na jehož konec je možné zapisovat ”r+” – otevírá soubor pro čtení i zápis (soubor musí existo- vat) ”w+” – vytváří nový (prázdný) soubor pro čtení i zápis – jestliže soubor již existuje, pak je přepsán souborem novým ”a+” – otevírá existující soubor pro čtení a přidání dat na jeho konec – jestliže soubor neexistuje, pak je vytvořen nový (prázdný) soubor, z nějž je možné číst a na jehož konec je možné zapisovat na konci parametru mode (popř. před znakem +) může být ještě znak b, který způsobí, že se souborem se bude pracovat jako se souborem binárním (nikoliv textovým) 08/05/2018

Práce se soubory (5) mode r w a r+ w+ a+ Jmenovaný soubor již musí existovat ano ne ne ano ne ne Obsah existujícího souboru se ztrácí ne ano ne ne ano ne Čtení ze souboru povoleno ano ne ne ano ano ano Zápis do souboru povolen ne ano ano ano ano ano Zápis povolen pouze na konci souboru ne ne ano ne ne ano 08/05/2018

Práce se soubory (6) vrácená hodnota: poznámka: v případě, že se soubor podaří otevřít (vytvořit), pak fun-kce vrací ukazatel typu FILE *, který určuje proud pro další vstupní nebo výstupní operace jestliže se soubor nepodaří otevřít (nastane chyba): vrací NULL kód chyby uloží do proměnné errno poznámka: je-li soubor otevřen pro čtení i zápis, pak by mezi vstup-ní operací následovanou výstupní operací (nebo výstupní operací následovanou vstupní operací) mělo být prove-deno vyprázdnění vyrovnávacích pamětí (fflush) vyprázdnění vyrovnávacích pamětí provádějí i funkce manipulující s indikátorem pozice (fseek, rewind) 08/05/2018

Práce se soubory (7) Funkce fclose: deklarována v: stdio.h prototyp: int fclose(FILE *stream); funkce: uzavírá otevřený soubor spojený s proudem stream vyprazdňuje vyrovnávací paměti vrácená hodnota: 0 při úspěšném uzavření EOF při vzniku chyby 08/05/2018

Práce se soubory (8) Funkce fflush: deklarována v: stdio.h prototyp: int fflush(FILE *stream); funkce: vyprazdňuje vyrovnávací paměti spojené s proudem stream proud zůstává otevřený vrácená hodnota: 0 při úspěšném provedení EOF při vzniku chyby 08/05/2018

Práce se soubory (9) Funkce fseek: deklarována v: stdio.h prototyp: int fseek(FILE *stream, long int offset, int wherefrom); funkce: nastavuje indikátor pozice v souboru spojeném s prou-dem stream podle hodnoty specifikované paramet-rem offset parametr offset (číslo se znaménkem) určuje počet znaků (bytů) 08/05/2018

Práce se soubory (10) vrácená hodnota: poznámka: parametr wherefrom označuje místo v souboru, od kterého se má měřit offset wherefrom může mít hodnotu: SEEK_SET offset je měřen od začátku souboru SEEK_CUR offset je měřen od aktuální pozice SEEK_END offset je měřen od konce souboru vrácená hodnota: 0 při úspěšné změně pozice různá od nuly při vzniku chyby poznámka: používána zejména u binárních souborů pro textové soubory by hodnota offset měla být buď nula, nebo hodnota vrácená funkcí ftell 08/05/2018

Práce se soubory (11) Funkce ftell: deklarována v: stdio.h prototyp: long int ftell(FILE *stream); funkce: zjišťuje aktuální pozici (hodnotu indikátoru pozice) v souboru spojeném s proudem stream vrácená hodnota: aktuální hodnota indikátoru pozice souboru u binárních souborů odpovídá počtu znaků (bytů), které jsou v souboru před současnou pozicí v případě chyby vrací hodnotu –1 a nastaví proměnnou errno na hodnotu vyjadřující chybu 08/05/2018

Práce se soubory (12) Funkce rewind: deklarována v: stdio.h prototyp: void rewind(FILE *stream); funkce: nastavuje indikátor pozice na začátek souboru spojeného s parametrem stream shodné s fseek(stream,0,SEEK_SET); vrácená hodnota: funkce nevrací žádnou hodnotu 08/05/2018

Práce se soubory (13) Funkce fgetc: deklarována v: stdio.h prototyp: int fgetc(FILE *stream); funkce: čte jeden znak ze souboru spojeného s proudem stream posunuje indikátor pozice o jeden znak (indikátor pozice bude ukazovat na následující znak) vrácená hodnota: načtený znak jako hodnota typu int nastane-li chyba, nebo je-li proud na konci souboru, pak vrací hodnotu EOF 08/05/2018

Práce se soubory (14) Funkce fputc: Poznámka: deklarována v: stdio.h prototyp: int fputc(int c, FILE *stream); funkce: zapisuje znak c (specifikovaný jako hodnota typu int) do souboru spojeného s proudem stream posunuje indikátor pozice za zapsaný znak vrácená hodnota: zapsaný znak nastane-li chyba, pak vrací hodnotu EOF Poznámka: pro načtení řetězce ze souboru je možné použít funkci fgets (viz řetězce) 08/05/2018

Práce se soubory (15) Funkce fputs: deklarována v: stdio.h prototyp: int fputs(const char *s, FILE *stream); funkce: zapisuje znaky řetězce s (kromě ukončovacího znaku ’\0’) do souboru spojeného s proudem stream posunuje indikátor pozice za poslední zapsaný znak vrácená hodnota: v případě úspěšného zápisu vrací nezápornou hodnotu nastane-li chyba, pak vrací hodnotu EOF 08/05/2018

Práce se soubory (16) Funkce fscanf: deklarována v: stdio.h prototyp: int fscanf(FILE *stream, const char *format,…); funkce: pracuje podobně jako funkce scanf pro parametr format platí stejná pravidla jako u fun-kce scanf znaky nejsou načítány ze standardního vstupu, ale ze souboru spojeného s proudem stream posunuje indikátor pozice za poslední načtený znak 08/05/2018

Práce se soubory (17) Funkce fprintf: deklarována v: stdio.h prototyp: int fprintf(FILE *stream, const char *format,…); funkce: pracuje podobně jako funkce printf pro parametr format platí stejná pravidla jako u fun-kce printf posloupnost dat specifikovaná parametrem format není vypisována na standardní výstup, ale je ukládána do souboru spojeného s proudem stream posunuje indikátor pozice za poslední zapsaný znak 08/05/2018

Práce se soubory (18) Funkce fread: deklarována v: stdio.h prototyp: size_t fread(void *ptr, size_t element_size, size_t count, FILE *stream); funkce: provádí načítání hodnot z binárního souboru spojeného s proudem stream ptr je ukazatel na pole obsahující count prvků, které budou načítány a z nichž každý má velikost element_size posunuje indikátor pozice za poslední načtený byte 08/05/2018

Práce se soubory (19) Funkce fwrite: vrácená hodnota: skutečný počet načtených prvků: může být menší než count, dosáhne-li se konce souboru v případě chyby vrací hodnotu nula Funkce fwrite: deklarována v: stdio.h prototyp: size_t fwrite(void *ptr, size_t element_size, size_t count, FILE *stream); 08/05/2018

Práce se soubory (20) funkce: vrácená hodnota: zapisuje hodnoty do binárního souboru spojeného s proudem stream ptr je ukazatel na pole obsahující count prvků, které budou zapisovány a z nichž každý má velikost element_size posunuje indikátor pozice za poslední zapsaný znak vrácená hodnota: skutečný počet zapsaných prvků jestliže vrácená hodnota je různá od hodnoty count, pak při zápisu nastala chyba 08/05/2018

Práce se soubory (21) Funkce feof: deklarována v: stdio.h prototyp: int feof(FILE *stream); funkce: testuje, zda-li při čtení ze souboru spojeného s proudem stream bylo dosaženo jeho konce vrácená hodnota: 0 jestliže nebylo dosaženo konce souboru různá od nuly jestliže bylo dosaženo konce souboru 08/05/2018

Práce se soubory (22) Funkce ferror: deklarována v: stdio.h prototyp: int ferror(FILE *stream); funkce: testuje, zda-li při práci se souborem spojeným s prou-dem stream nedošlo k chybě vrácená hodnota: 0 v případě, že žádná chyba nenastala různá od nuly jestliže při práci se souborem došlo k chybě 08/05/2018

Práce se soubory (23) Funkce clearerr: deklarována v: stdio.h prototyp: void clearerr(FILE *stream); funkce: resetuje indikátor chyby a konce souboru spojeného s proudem stream následující volání funkce ferror nebude hlásit žádnou chybu vrácená hodnota: funkce nevrací žádnou hodnotu 08/05/2018

Práce se soubory (24) Funkce remove: deklarována v: stdio.h prototyp: int remove(const char *filename); funkce: odstraní (zruší) soubor specifikovaný parametrem filename vrácená hodnota: 0 jestliže operace proběhla úspěšně různá od nuly při vzniku chyby 08/05/2018

Práce se soubory (25) Funkce rename: deklarována v: stdio.h prototyp: int rename(const char *oldname, const char *newname); funkce: změní jméno souboru oldname na newname vrácená hodnota: 0 jestliže operace proběhla úspěšně různá od nuly při vzniku chyby 08/05/2018