Sdílet prostřednictvím


Textové a binární streamy

Textový proud se skládá z jednoho nebo více řádků textu, které lze zapsat do textového zobrazení, aby je bylo možné číst. Při čtení z textového streamu program na konci každého řádku přečte nový řádek. Když zapíše do textového streamu, program zapíše nový řádek, který signaluje konec řádku. Aby se shodovaly různé konvence mezi cílovými prostředími pro reprezentaci textu v souborech, můžou funkce knihovny měnit počet a reprezentaci znaků přenášených mezi programem a textovým streamem.

Umístění v textovém streamu je omezené. Aktuální indikátor umístění souboru můžete získat voláním fgetpos nebo ftell. Textový proud můžete umístit na pozici získanou tímto způsobem nebo na začátek nebo konec datového proudu voláním fsetpos nebo fseek. Jakákoli jiná změna pozice nemusí být podporovaná.

Pro maximální přenositelnost by program neměl psát:

  • Prázdné soubory.
  • Znaky mezery na konci řádku
  • Částečné řádky (vynecháním nového řádku na konci souboru)
  • Jiné znaky než tisknutelné znaky, nový řádek a vodorovná tabulátor.

Pokud použijete tato pravidla, bude posloupnost znaků, které přečtete z textového streamu, odpovídat posloupnosti znaků, které jste napsali, ať už jako bajty nebo vícebajtové znaky. V opačném případě můžou funkce knihovny odebrat soubor, který vytvoříte, pokud je soubor při zavření prázdný. Nebo můžou změnit nebo odstranit znaky, které do souboru zapíšete.

Binární datový proud se skládá z jednoho nebo více bajtů libovolných informací. Hodnotu uloženou v libovolném objektu můžete napsat do (bajtově orientovaného) binárního datového proudu a přečíst přesně to, co bylo uloženo v objektu, když jste ho napsali. Funkce knihovny nemění bajty, které přenášíte mezi programem a binárním streamem. Můžou ale k souboru, který zapíšete pomocí binárního streamu, připojit libovolný počet NULL bajtů. Program musí řešit tyto nadbytečné NULL bajty na konci binárního streamu.

Umístění v binárním datovém proudu je dobře definované, s výjimkou umístění vzhledem ke konci datového proudu. Můžete získat a změnit indikátor pozice aktuálního souboru stejně jako u textového streamu. Posuny používané ftell bajty a fseek počty bajtů od začátku toku (což je bajt nula), takže celočíselná aritmetika na těchto posunech přináší předvídatelné výsledky.

Bajtový datový proud považuje soubor za posloupnost bajtů. V rámci programu datový proud vypadá jako stejná posloupnost bajtů s výjimkou možných změn popsaných výše.

Viz také

Soubory a streamy