Octets et larges flux
Un flux d'octets traite un fichier en tant que séquence d'octets.Dans le programme, le flux est la même séquence d'octets.
En revanche, un flux large traite un fichier en tant que séquence de caractères multioctets généralisé, qui peuvent avoir une large gamme de règles d'encodage.(Le texte et les fichiers binaires sont toujours lus et comme décrit précédemment écrits.) Dans le programme, le flux de données ressemble à la séquence correspondante à caractères larges.Les conversions entre les deux représentations se produisent dans la bibliothèque C standard.Les règles de conversion peuvent être modifiées, en principe, par un appel à setlocale qui modifie la catégorie LC_CTYPE.Chaque flux de données large détermine ses règles de conversion lorsqu'il devient orienté large, et conserve ces règles même si la catégorie LC_CTYPE est modifiée ultérieurement.
Le positionnement dans un flux de données large souffre les mêmes limites que pour les vapeurs de texte.De plus, l'indicateur de position de fichier peut bien peut-être traiter un encodage d'état-dépendant.En général, elle inclut un décalage d'octet dans le flux de données et un objet de type mbstate_t.Par conséquent, la seule manière fiable d'obtenir une position de fichier dans un flux de données élargi est en appelant fgetpos, et la seule manière fiable pour restaurer une position a obtenu cette façon est en appelant fsetpos.