Byte e fluxos largos
Um fluxo de bytes trata um arquivo com uma sequência de bytes. No programa, o fluxo será idêntica a sequência de bytes.
Por outro lado, um fluxo amplo trata um arquivo com uma sequência de caracteres generalizados multibyte, o que pode ter um amplo intervalo de regras de codificação. (O texto e os arquivos binários ainda são lidos e gravados como descrito anteriormente.) No programa, o fluxo correspondente é semelhante à sequência de caracteres amplos. As conversões entre as duas representações ocorrem dentro da biblioteca padrão C. As regras de conversão podem, em princípio, ser alteradas por uma chamada a setlocale que altera a categoria LC_CTYPE. Cada fluxo amplo determina as regras de conversão em ficar orientado para todo, e retém essas regras se a categoria LC_CTYPE for alterado posteriormente.
O posicionamento dentro de um fluxo de sofrê as mesmas restrições que para vapores de texto. Além disso, o indicador de arquivo posição bem pode ter que lidar com uma codificação de estado dependente. Normalmente, o inclui um deslocamento de bytes no fluxo e um objeto de tipo mbstate_t. Portanto, o único modo seguro para obter uma posição do arquivo em um fluxo amplo é chamando fgetpos, e o único modo confiável de restaurar uma posição adquiriu esse modo é chamando fsetpos.