Arquivos e fluxos

Um programa se comunica com o ambiente de destino ao ler e gravar arquivos. Um arquivo pode ser:

  • Um conjunto de dados que você pode ler e gravar repetidamente.

  • Um fluxo de bytes gerado por um programa (como um pipeline).

  • Um fluxo de bytes recebidos de ou enviado para um dispositivo periférico.

Os dois últimos itens são arquivos interativos. Normalmente, os arquivos são o principal meio de interação com um programa. Você manipula todos esses tipos de arquivos da mesma maneira: chamando funções de biblioteca. Você inclui o cabeçalho padrão STDIO.H para declarar a maioria dessas funções.

Antes que você possa realizar muitas das operações em um arquivo, o arquivo deverá ser aberto. Abrir um arquivo o associa a um fluxo, uma estrutura de dados dentro da biblioteca C padrão que encobre várias diferenças entre arquivos de diversos tipos. A biblioteca mantém o estado de cada fluxo em um objeto do tipo FILE.

O ambiente de destino abre três arquivos antes da inicialização do programa. Você pode abrir um arquivo chamando a função fopende biblioteca , _wfopen com dois argumentos. (A fopen função foi preterida, use fopen_s, _wfopen_s em vez disso.) O primeiro argumento é um nome de arquivo. O segundo argumento é uma cadeia de caracteres em C que especifica:

  • Se você pretende ler dados do arquivo ou gravar dados nele ou ambos.

  • Se você pretende gerar um novo conteúdo para o arquivo (ou criar um arquivo, se ele não existia anteriormente) ou deixar o conteúdo existente no lugar.

  • Se as gravações em um arquivo podem alterar o conteúdo existente ou se só devem acrescentar bytes ao final do arquivo.

  • Se você deseja manipular um fluxo de texto ou um fluxo binário.

Depois que o arquivo for aberto com êxito, você poderá determinar se o fluxo é orientado a bytes (um fluxo de bytes) ou orientado a largos (um fluxo largo). Inicialmente, um fluxo não está associado. Chamar determinadas funções para operar no fluxo o torna orientado a byte, enquanto outras funções determinadas o tornam orientado a largo. Uma vez estabelecido, um fluxo mantém sua orientação até ser fechado por uma chamada para fclose ou freopen.

© 1989-2001 por P.J. Plauger e Jim Brodie. Todos os direitos reservados.

Confira também

Texto e fluxos binários
Fluxos de bytes e largos
Controlando fluxos
Estados de fluxo