Provided by: manpages-pt-dev_20040726-4_all bug

NOME

       fopen, fdopen, freopen - funções de abertura de fluxo

SINOPSE

       #include <stdio.h>

       FILE *fopen (const char *path, const char *mode);
       FILE *fdopen (int fildes, const char *mode);
       FILE *freopen (const char *path, const char *mode, FILE *stream);

DESCRIÇÃO

       A  função  fopen  abre o arquivo cujo nome é a string apontada por path e associa um fluxo
       com ele.

       O argumento mode aponta para uma string que começa com uma ou mais sequências  (Caracteres
       adicionais podem seguir essas sequências.):

       r      Abre arquivo de texto para leitura. O fluxo é posicionado no começo do arquivo.

       r+     Abre para leitura e escrita. O fluxo é posicionado no começo do arquivo.

       w      Trunca  o  arquivo  para comprimento zero, ou cria arquivo de texto para escrita. O
              fluxo é posicionado no começo do arquivo.

       w+     Abre para leitura e escrita. O arquivo é criado se não existir, caso contrário  ele
              é truncado. O fluxo é posicionado no começo do arquivo.

       a      Abre  para escrita. O arquivo é criado se não existir. O fluxo é posicionado no fim
              do arquivo.

       a+     Abre para leitura e escrita.  O  arquivo  é  criado  se  não  existir.  O  fluxo  é
              posicionado no fim do arquivo.

       A  string  de  mode  também pode incluir a letra ``b'' como um último caractere ou como um
       caractere entre os caracteres em qualquer uma das strings  de  dois  caracteres  descritas
       acima.  Isto  é  estritamente para compatibilidade com ANSI X3.159-1989 (``ANSI C'') e não
       tem efeito; o ``b'' é ignorado em todos os  sistemas  conformes  com  POSIX,  incluindo  o
       Linux.  (Outros  sistemas  podem  tratar  arquivos  de texto e arquivos binários de formas
       diferentes, e o acréscimo de ``b'' pode ser uma boa idéia se você faz E/S para um  arquivo
       binário e espera que seu programa possa ser portado para ambientes não-Unix.)

       Quaisquer  arquivos  criados  terão o modo S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH
       (0666), conforme modificado pelo valor de 'umask' do processo (veja umask(2).

       Leitura e escrita pode ser mescladas em fluxos de leitura/escrita em qualquer ordem.  Note
       que o C ANSI requer que uma função de posicionamento de arquivo intercale-se entre a saída
       e a entrada, a menos que uma operação de entrada encontre  o  fim  do  arquivo.  (Se  esta
       condição  não  é  encontrada,  então  uma leitura é permitida para retornar o resultado de
       escritas que não sejam a mais recente.)  Portanto é uma boa prática (e de fato  necessário
       sob  o Linux, às vezes) colocar uma operação fseek ou fgetpos entre operações de escrita e
       leitura em tais fluxos. Esta operação pode ser um aparente no-op ("no operation"), como em
       fseek(..., 0L, SEEK_CUR) chamado para seu efeito colateral de sincronismo.

       A função fdopen associa um fluxo com o descritor de arquivos existente, fildes.  O modo do
       fluxo (um dos valores "r", "r+", "w", "w+", "a", "a+") precisa ser compatível com  o  modo
       do  descritor  de  arquivo.  O indicador de posição do arquivo do novo fluxo é setado para
       aquele pertencente ao fildes, e os indicadores de erro e fim de arquivo  são  limpos.   Os
       modos  "w"  ou "w+" não provocam truncamento do arquivo.  O descritor de arquivo não sofre
       um 'dup', e será fechado quando o fluxo criado por fdopen for  fechado.   O  resultado  da
       aplicação de fdopen para um objeto de memória compartilhado é indefinido.

       A  função  freopen abre o arquivo cujo nome é a string apontada por path e associa o fluxo
       apontado por stream a ele. O fluxo original (se existir) é encerrado. O argumento  mode  é
       usado  apenas  como  na  função fopen.  O uso primário da função freopen é mudar o arquivo
       associado com o fluxo de texto padrão (stderr, stdin, ou stdout).

VALORES DE RETORNO

       Em caso de término bem-sucedido, fopen, fdopen e freopen retornam um ponteiro  para  FILE.
       Caso  contrário,  é  retornado  um  NULL e a variável global errno é setada para indicar o
       erro.

ERROS

       EINVAL O mode fornecido para fopen, fdopen, ou freopen era inválido.

       As funções fopen, fdopen e freopen também podem falhar e setar errno  para  quaisquer  dos
       erros especificados para a rotina malloc(3).

       A  função  fopen  também  pode falhar e setar errno para quaisquer dos erros especificados
       para a rotina open(2).

       A função fdopen também pode falhar e setar errno para quaisquer  dos  erros  especificados
       para a rotina fcntl(2).

       A  função  freopen também pode falhar e setar errno para quaisquer dos erros especificados
       para as rotinas open(2), fclose(3) e fflush(3).

VEJA TAMBÉM

       open(2), fclose(3)

PADRÕES

       As funções fopen e freopen estão em conformidade com  ANSI  X3.159-1989  (``ANSI  C'').  A
       função fdopen está em conformidade com IEEE Std1003.1-1988 (``POSIX.1'').

TRADUÇÃO PARA A LÍNGUA PORTUGUESA

       RUBENS  DE  JESUS  NOGUEIRA  <darkseid99@usa.net>  (tradução)  XXXXXX  XX  XXXXX  XXXXXXXX
       <xxxxxxxxxx@xxx.xxx> (revisão)