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 texto consiste em uma ou mais linhas de texto que podem ser gravadas em uma exibição orientada a texto para que possam ser lidas. Quando lê a partir de um fluxo de texto, o programa lê uma nova linha no final de cada linha. Quando ele grava em um fluxo de texto, o programa escreve uma nova linha para sinalizar o fim de uma linha. Para corresponder a diferentes convenções entre ambientes de destino para representar texto em arquivos, as funções da biblioteca podem alterar o número e as representações de caracteres transmitidos entre o programa e um fluxo de texto.
O posicionamento dentro de um fluxo de texto é limitado. Você pode obter o indicador de posição do arquivo atual chamando fgetpos ou ftell. Você pode posicionar um fluxo de texto em uma posição obtida dessa forma, ou no início ou no final do fluxo, chamando fsetpos ou fseek. Qualquer outra mudança de posição pode muito bem não ser apoiada.
Para máxima portabilidade, o programa não deve escrever:
- Arquivos vazios.
- Caracteres de espaço no final de uma linha.
- Linhas parciais (omitindo a nova linha no final de um arquivo).
- Caracteres que não sejam os imprimíveis, nova linha e tabulação horizontal.
Se você seguir essas regras, a sequência de caracteres lida de um fluxo de texto corresponderá à sequência de caracteres que você escreveu, seja como bytes ou como caracteres multibyte. Caso contrário, as funções da biblioteca podem remover um arquivo criado se o arquivo estiver vazio quando você fechá-lo. Ou, eles podem alterar ou excluir caracteres que você grava no arquivo.
Um fluxo binário consiste em um ou mais bytes de informações arbitrárias. Você pode gravar o valor armazenado em um objeto arbitrário em um fluxo binário (orientado a bytes) e ler exatamente o que foi armazenado no objeto quando o escreveu. As funções da biblioteca não alteram os bytes transmitidos entre o programa e um fluxo binário. No entanto, eles podem acrescentar um número arbitrário de NULL bytes ao arquivo que você escreve com um fluxo binário. O programa deve lidar com esses bytes extras NULL no final do fluxo binário.
O posicionamento dentro de um fluxo binário é bem definido, exceto para o posicionamento em relação ao final do fluxo. Você pode obter e alterar o indicador de posição do arquivo atual da mesma forma que para um fluxo de texto. Os deslocamentos usados por ftell e fseek contam bytes desde o início do fluxo (que é byte zero), portanto, a aritmética de inteiros nesses deslocamentos produz resultados previsíveis.
Um fluxo de bytes trata um arquivo como uma sequência de bytes. Dentro do programa, o fluxo se parece com a mesma sequência de bytes, exceto para as possíveis alterações descritas acima.