Udostępnij przez


Strumienie binarne i tekstowe

Strumień tekstowy składa się z co najmniej jednego wiersza tekstu, który można zapisać na ekranie zorientowanym na tekst, aby można je było odczytać. Gdy odczytuje ze strumienia tekstowego, program odczytuje nowy wiersz na końcu każdego wiersza. Podczas zapisywania w strumieniu tekstowym program zapisuje nowy wiersz, aby zasygnalizować koniec wiersza. Aby dopasować różne konwencje między środowiskami docelowymi do reprezentowania tekstu w plikach, funkcje biblioteki mogą zmieniać liczbę i reprezentacje znaków przesyłanych między programem a strumieniem tekstowym.

Pozycjonowanie w strumieniu tekstowym jest ograniczone. Bieżący wskaźnik położenia pliku można uzyskać, wywołując polecenie fgetpos lub ftell. Strumień tekstowy można umieścić na pozycji uzyskanej w ten sposób lub na początku lub na końcu strumienia, wywołując fsetpos metodę lub fseek. Każda inna zmiana pozycji może nie być obsługiwana.

Aby zapewnić maksymalną przenośność, program nie powinien zapisywać:

  • Puste pliki.
  • Znaki spacji na końcu wiersza.
  • Wiersze częściowe (pomijając nowy wiersz na końcu pliku).
  • Znaki inne niż znaki drukowalne, nowa linia i karta pozioma.

W przypadku przestrzegania tych reguł sekwencja znaków odczytanych ze strumienia tekstowego będzie zgodna z sekwencją napisanych znaków, niezależnie od tego, czy są to bajty, czy znaki wielobajtowe. W przeciwnym razie funkcje biblioteki mogą usunąć utworzony plik, jeśli plik jest pusty po jego zamknięciu. Mogą też zmieniać lub usuwać znaki zapisywane w pliku.

Strumień binarny składa się z co najmniej jednego bajtu dowolnych informacji. Wartość przechowywaną w dowolnym obiekcie można zapisać w strumieniu binarnym (zorientowanym na bajty) i odczytywać dokładnie to, co było przechowywane w obiekcie podczas jego pisania. Funkcje biblioteki nie zmieniają bajtów przesyłanych między programem a strumieniem binarnym. Mogą jednak dołączyć dowolną liczbę bajtów NULL do pliku zapisanego strumieniem binarnym. Program musi zajmować się tymi dodatkowymi NULL bajtami na końcu strumienia binarnego.

Pozycjonowanie w strumieniu binarnym jest dobrze zdefiniowane, z wyjątkiem pozycjonowania względem końca strumienia. Bieżący wskaźnik położenia pliku można uzyskać i zmienić tak samo jak dla strumienia tekstowego. Przesunięcia używane przez ftell i fseek zliczają bajty od początku strumienia (czyli zero bajtów), więc arytmetyka całkowita na tych przesunięciach daje przewidywalne wyniki.

Strumień bajtów traktuje plik jako sekwencję bajtów. W programie strumień wygląda jak ta sama sekwencja bajtów, z wyjątkiem możliwych zmian opisanych powyżej.

Zobacz też

Pliki i strumienie