Condividi tramite


Flussi di byte e "wide"

Un flusso di byte considera un file come sequenza di byte. Nel programma, il flusso è identico ad una sequenza di byte.

Al contrario, un ampio flusso gestisce un file come una sequenza di caratteri multibyte generalizzata, che possono includere una vasta gamma di regole di codifica. (I file di testo e i file binari verranno letti e scritti come descritto in precedenza.) Nel programma, il flusso corrisponde alla sequenza di caratteri wide. Le conversioni tra le due rappresentazioni si verificano all'interno della libreria Standard C. Le regole di conversione possono, teoricamente, essere alterate da una chiamata a setlocale che altera la categoria LC_CTYPE. Ogni flusso determina le regole di conversione quando diventa orientato ai caratteri wide e mantiene queste regole anche se la categoria LC_CTYPE si modifica successivamente.

Il posizionamento all'interno del flusso wide subisce le stesse limitazioni relative ai flussi di testo. Inoltre, l'indicatore di posizione del file potrebbe gestire una codifica dipendente dagli stati. In genere, include sia un offset di byte nel flusso che un oggetto di tipo mbstate_t. Pertanto, l'unico modo più affidabile per ottenere la posizione di un file all'interno del flusso è chiamando fgetpos e l'unico modo affidabile per ripristinare una posizione ottenuta con questa modalità è chiamando fsetpos.

Vedere anche

Riferimenti

File e flussi

setlocale, _wsetlocale