Flussi di byte e "wide"Byte and Wide Streams

Un flusso di byte considera un file come una sequenza di byte.A byte stream treats a file as a sequence of bytes. All'interno del programma il flusso è una sequenza di byte identici.Within the program, the stream is the identical sequence of bytes.

Per contro un flusso wide gestisce un file come sequenza di caratteri multibyte generici, che possono includere un'ampia gamma di regole di codifica.By contrast, a wide stream treats a file as a sequence of generalized multibyte characters, which can have a broad range of encoding rules. I file binari e di testo vengono comunque letti e scritti come illustrato in precedenza. All'interno del programma il flusso ha l'aspetto della sequenza di caratteri wide corrispondente.(Text and binary files are still read and written as previously described.) Within the program, the stream looks like the corresponding sequence of wide characters. Le conversioni tra le due rappresentazioni si verificano all'interno della libreria C standard.Conversions between the two representations occur within the Standard C Library. In linea di principio le regole di conversione possono essere modificate da una chiamata a setlocale che modifica LC_CTYPE della categoria.The conversion rules can, in principle, be altered by a call to setlocale that alters the category LC_CTYPE. Ogni flusso wide determina le proprie regole di conversione quando si orienta su wide e mantiene queste regole anche se il tipo LC_CTYPE della categoria cambia in un secondo tempo.Each wide stream determines its conversion rules at the time it becomes wide oriented, and retains these rules even if the category LC_CTYPE subsequently changes.

Il posizionamento in un flusso wide ha le stesse limitazioni valide per un flusso di testo.Positioning within a wide stream suffers the same limitations as for text steams. È anche possibile che l'indicatore file-position si trovi a gestire una codifica dipendente dallo stato.Moreover, the file-position indicator may well have to deal with a state-dependent encoding. In genere questa include sia un offset di byte nel flusso sia un oggetto di tipo mbstate_t.Typically, it includes both a byte offset within the stream and an object of type mbstate_t. Di conseguenza l'unico modo affidabile per ottenere una posizione di file all'interno di un flusso di caratteri wide è la chiamata di fgetpos e l'unico modo affidabile per ripristinare una posizione ottenuta in questo modo è la chiamata di fsetpos.Thus, the only reliable way to obtain a file position within a wide stream is by calling fgetpos, and the only reliable way to restore a position obtained this way is by calling fsetpos.

Vedere ancheSee Also

File e flussi Files and Streams
setlocale, _wsetlocalesetlocale, _wsetlocale