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)

BSD MANPAGE                                  13 de dezembro de 1995                                     FOPEN(3)