fopen

FOPEN(3)                   Manual do Programador Linux                  FOPEN(3)



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)