Arquivos de texto: abrindo

Use fopen para abrir um arquivo. Ele abre um arquivo para um modo especificado (os três mais comuns são r, w e a, para leitura, gravação e anexação). Ele então retorna um ponteiro de arquivo que você usa para acessar o arquivo. Por exemplo, suponha que você queira abrir um arquivo e escrever nele os números 1 a 10. Você pode usar a seguinte codificação:
  #include <stdio.h>
  #define MAX 10 

  int main()
  {
      FILE *f;
      int x;
      f=fopen("out","w";);
      if (!f)
          return 1;
      for(x=1; x<=MAX; x++)
          fprintf(f,"%d\n",x);
      fclose(f);
      return 0;
  }  

A instrução fopen abre um arquivo denominado out com o modo w. Este é um modo de escrita destrutivo, o que significa que se out não existir ele será criado, porém se ele já existir, será destruído e um novo arquivo será criado em seu lugar. O comando fopen retorna um ponteiro para o arquivo, que é armazenado na variável f. Esta variável é usada para referência ao arquivo. Se o arquivo não pode ser aberto por algum motivo, f irá conter NULL.

Valores de retorno da função principal
Este programa é o primeiro programa desta série que retorna um valor de erro do programa principal. Se o comando fopen falhar, f contém um valor NULL (zero). Vamos testar este erro com a instrução if. A instrução if verifica o valor de Verdadeiro/Falso da variável f. Lembre-se de que em C, 0 é Falso e qualquer outro valor é verdadeiro. Se houvesse um erro ao abrir o arquivo, f conteria zero, que é Falso. O ! é o operador NOT. Ele inverte um valor booleano. Assim, a instrução if poderia ter sido escrita desta forma:
  if (f == 0)  

As duas formas são equivalentes. Porém, if (!f) é mais comum.

Se houver um erro de arquivo, retornamos um 1 da função principal. Em UNIX, você pode testar este valor na linha de comando. Veja a documentação de shell para mais detalhes.

A instrução fprintf deve parecer bastante familiar: ela é igual a printf, mas usa o ponteiro de arquivo como seu primeiro parâmetro. A instrução fclose fecha o arquivo quando você termina.