Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Um fluxo de bytes trata um arquivo como uma sequência de bytes. Dentro do programa, o fluxo é uma sequência de bytes idêntica.
Por outro lado, um fluxo amplo trata um arquivo como uma sequência de caracteres multibyte generalizados, que pode ter uma ampla gama de regras de codificação. (Texto e arquivos binários ainda são lidos e gravados como descrito anteriormente.) Dentro do programa, o fluxo se parece com a sequência correspondente de caracteres largos. As conversões entre as duas representações ocorrem dentro da Biblioteca C Padrão. As regras de conversão podem, em princípio, ser alteradas por uma chamada para setlocale que altera a categoria LC_CTYPE. Cada fluxo amplo determina suas regras de conversão no momento em que se torna orientado para o amplo e mantém essas regras mesmo se a categoria LC_CTYPE mudar posteriormente.
O posicionamento dentro de um fluxo amplo sofre as mesmas limitações que para fluxos de texto. Além disso, o indicador de posição do arquivo pode muito bem ter que lidar com uma codificação dependente do estado. Normalmente, ele inclui um deslocamento de byte dentro do fluxo e um objeto do tipo mbstate_t. Assim, a única maneira confiável de obter uma posição de arquivo dentro de um fluxo amplo é chamando fgetpos, e a única maneira confiável de restaurar uma posição obtida dessa maneira é chamando fsetpos.