Partager via


Flux d'octets et flux larges

Un flux d'octets traite un fichier comme séquence d'octets. Dans le cadre du programme, le flux de données est la même séquence d'octets.

En revanche, un flux de données traite un fichier comme séquence de caractères multioctets généralisés, qui peuvent avoir une large gamme de règles d'encodage. (Le texte et les fichiers binaires sont toujours lus et écrits comme décrit précédemment.) Dans le cadre de programme, le flux ressemble à la série de caractères larges correspondants. Les conversions entre les deux représentations se produisent dans la bibliothèque Standard C. Les règles de conversion peuvent être modifiées, en principe, par un appel à setlocale qui modifie la catégorie LC_CTYPE. Chaque flux large détermine les règles de conversion lorsqu'il devient orienté large, et conserve ces règles même si la catégorie LC_CTYPE change ultérieurement.

Le positionnement dans un flux large souffre les mêmes limitations que pour les flux de texte. De plus, l'indicateur d'emplacement de fichier peut potentiellement avoir à traiter un encodage dépendant de l'état. En général, il comprend un décalage d'octets dans le flux de données et un objet de type mbstate_t. Par conséquent, la seule méthode fiable pour obtenir une position de fichier dans un flux large est d'appeler fgetpos, la seule méthode fiable pour restaurer une position ainsi obtenue est d'appeler fsetpos.

Voir aussi

Référence

Fichiers et flux

setlocale, _wsetlocale