O sistema de entrada e saída do ANSI C é composto por uma série de funções, cujos protótipos estão reunidos em stdio.h. Todas estas funções trabalham com o conceito de “ponteiro de arquivo”. Este não é um tipo propriamente dito, mas uma definição usando o comando typedef. Esta definição também está no arquivo stdio.h. Podemos declarar um ponteiro de arquivo da seguinte maneira
FILE *p;
p será então um ponteiro para um arquivo. É usando este tipo de ponteiro que vamos poder manipular arquivos no C.
Esta é a função de abertura de arquivos. Seu protótipo é
FILE *fopen (char *nome_do_arquivo,char *modo);
O nome_do_arquivo determina qual arquivo deverá ser aberto. Este nome deve ser válido no sistema operacional que estiver sendo utilizado. O modo de abertura diz à função fopen() que tipo de uso você vai fazer do arquivo. A tabela abaixo mostra os valores de modo válidos:
Modo | Significado |
"r" | Abre um arquivo texto para leitura. O arquivo deve existir antes de ser aberto. |
"w" | Abrir um arquivo texto para gravação. Se o arquivo não existir, ele será criado. Se já existir, o conteúdo anterior será destruído. Abrir um arquivo texto para gravação. Os dados serão adicionados no fim do arquivo ("append"), se ele já existir, ou um novo arquivo será criado, no caso de arquivo não |
"a" | existente anteriormente. |
"rb" | Abre um arquivo binário para leitura. Igual ao modo "r" anterior, só que o arquivo é binário. |
"ab" | Acrescenta dados binários no fim do arquivo, como no modo "a" anterior, só que o arquivo é binário. |
"r+" | Abre um arquivo texto para leitura e gravação. O arquivo deve existir e pode ser modificado. |
"w+" | Cria um arquivo texto para leitura e gravação. Se o arquivo existir, o conteúdo anterior será destruído. Se não existir, será criado. Abre um arquivo texto para gravação e leitura. Os dados serão adicionados no fim do arquivo se ele já existir, ou um novo arquivo será criado, no caso de arquivo não |
"a+" | existente anteriormente. |
"r+b" | Abre um arquivo binário para leitura e escrita. O mesmo que "r+" acima, só que o arquivo é binário. |
"w+b" | Cria um arquivo binário para leitura e escrita. O mesmo que "w+" acima, só que o arquivo é binário. |
"a+b" | Acrescenta dados ou cria uma arquivo binário para leitura e escrita. O mesmo que "a+" acima, só que o arquivo é binário |
Escreve uma string num arquivo.
Fecha o arquivo.