Delen via


Byte- en wijdestromen

Een bytestroom behandelt een bestand als een reeks bytes. Binnen het programma is de stream de identieke reeks bytes.

Een brede stroom behandelt een bestand daarentegen als een reeks gegeneraliseerde multibyte tekens, die een breed scala aan coderingsregels kunnen bevatten. (Tekst- en binaire bestanden worden nog steeds gelezen en geschreven zoals eerder beschreven.) Binnen het programma ziet de stroom eruit als de bijbehorende reeks brede tekens. Conversies tussen de twee weergaven vinden plaats in de Standard C-bibliotheek. De conversieregels kunnen in principe worden gewijzigd door een aanroep van setlocale die de categorie LC_CTYPE wijzigt. Elke brede stroom bepaalt de conversieregels op het moment dat deze breed wordt en behoudt deze regels, zelfs als de categorie LC_CTYPE later verandert.

Plaatsing binnen een brede stroom heeft dezelfde beperkingen als voor tekststromen. Bovendien kan de indicator voor bestandspositie goed te maken hebben met een statusafhankelijke codering. Normaal gesproken bevat het zowel een byte-offset binnen de stroom als een object van het type mbstate_t. De enige betrouwbare manier om een bestandspositie binnen een brede stroom te verkrijgen, is door fgetpos aan te roepen, en de enige betrouwbare manier om een op deze manier verkregen positie te herstellen, is door fsetpos aan te roepen.

Zie ook

Bestanden en streams
setlocale, _wsetlocale