Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Strumień bajtów traktuje plik jako sekwencję bajtów. W programie strumień jest identyczną sekwencją bajtów.
Natomiast szeroki strumień traktuje plik jako sekwencję uogólnionych znaków wielobajtowych, które mogą mieć szeroką gamę reguł kodowania. (Pliki tekstowe i binarne są nadal odczytywane i zapisywane zgodnie z wcześniejszym opisem). W programie strumień wygląda jak odpowiednia sekwencja szerokich znaków. Konwersje między dwiema reprezentacjami występują w standardowej bibliotece C. Reguły konwersji mogą być w zasadzie zmieniane przez wywołanie setlocale , które zmienia kategorię LC_CTYPE. Każdy strumień szeroki określa jego reguły konwersji w momencie, gdy staje się szeroko zorientowany, i zachowuje te reguły, nawet jeśli kategoria LC_CTYPE później ulegnie zmianie.
Pozycjonowanie w szerokim strumieniu ma takie same ograniczenia jak w przypadku strumieni tekstowych. Ponadto wskaźnik położenia pliku może również mieć do czynienia z kodowaniem zależnym od stanu. Zazwyczaj zawiera zarówno przesunięcie bajtu w strumieniu, jak i obiekt typu mbstate_t. W związku z tym jedynym niezawodnym sposobem uzyskania pozycji pliku w szerokim strumieniu jest wywołanie metody fgetpos, a jedynym niezawodnym sposobem przywrócenia pozycji uzyskanej w ten sposób jest wywołanie metody fsetpos.