Soubory a streamy
Program komunikuje s cílovým prostředím čtením a zápisem souborů. Soubor může být:
Datová sada, kterou můžete číst a zapisovat opakovaně.
Datový proud bajtů generovaných programem (například kanálem).
Datový proud bajtů přijatých nebo odeslaných do periferního zařízení.
Poslední dvě položky jsou interaktivní soubory. Soubory jsou obvykle hlavními prostředky pro interakci s programem. Se všemi těmito druhy souborů pracujete stejným způsobem: voláním funkcí knihovny. Zahrnete standardní hlavičku STDIO. H deklaruje většinu těchto funkcí.
Než budete moct provádět mnoho operací se souborem, musí být soubor otevřen. Otevření souboru ho přidruží ke streamu, datové struktuře v rámci standardní knihovny C, která glosuje mnoho rozdílů mezi soubory různých druhů. Knihovna udržuje stav každého datového proudu v objektu typu FILE.
Cílové prostředí otevře před spuštěním programu tři soubory. Soubor můžete otevřít voláním funkce fopen
knihovny se _wfopen
dvěma argumenty. (Funkce fopen
je zastaralá, použijte _wfopen_s
fopen_s
místo toho.) Prvním argumentem je název souboru. Druhý argument je řetězec jazyka C, který určuje:
Ať už máte v úmyslu číst data ze souboru, nebo do něj zapisovat data nebo obojí.
Bez ohledu na to, jestli chcete pro soubor vygenerovat nový obsah (nebo vytvořit soubor, pokud ještě neexistuje) nebo ponechat existující obsah na místě.
Bez ohledu na to, jestli zápisy do souboru můžou změnit existující obsah, nebo by měly na konec souboru přidávat pouze bajty.
Ať už chcete manipulovat s textovým streamem nebo binárním streamem.
Po úspěšném otevření souboru pak můžete určit, jestli je datový proud orientovaný na bajt (bajtový proud) nebo široký (široký datový proud). Stream je zpočátku nevázaný. Volání určitých funkcí pro práci s datovým proudem z něj dělá bajt orientovaný, zatímco některé další funkce z něj dělají široké orientované. Po vytvoření datový proud udržuje svou orientaci, dokud není uzavřena voláním fclose
nebo freopen
.
© 1989-2001 p.J. Plauger a Jim Brodie. Všechna práva vyhrazena.
Viz také
Textové a binární streamy
Bajtové a široké datové proudy
Řízení datových proudů
Stavy datových proudů