.\" Copyright (c) 1990, 1991 The Regents of the University of California. .\" All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Chris Torek and the American National Standards Committee X3, .\" on Information Processing Systems. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)fopen.3 6.8 (Berkeley) 6/29/91 .\" .\" Converted for Linux, Mon Nov 29 15:22:01 1993, faith@cs.unc.edu .\" Modified, aeb, 960421, 970806 .\" .TH FOPEN 3 "13 de dezembro de 1995" "BSD MANPAGE" "Manual do Programador Linux" .SH NOME fopen, fdopen, freopen \- funções de abertura de fluxo .SH SINOPSE .B #include .sp .BI "FILE *fopen (const char *" path ", const char *" mode ); .br .BI "FILE *fdopen (int " fildes ", const char *" mode ); .br .BI "FILE *freopen (const char *" path ", const char *" mode ", FILE *" stream ); .SH DESCRIÇÃO A função .B fopen abre o arquivo cujo nome é a string apontada por .I path e associa um fluxo com ele. .PP O argumento .I mode aponta para uma string que começa com uma ou mais sequências (Caracteres adicionais podem seguir essas sequências.): .TP .B r Abre arquivo de texto para leitura. O fluxo é posicionado no começo do arquivo. .TP .B r+ Abre para leitura e escrita. O fluxo é posicionado no começo do arquivo. .TP .B w Trunca o arquivo para comprimento zero, ou cria arquivo de texto para escrita. O fluxo é posicionado no começo do arquivo. .TP .B 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. .TP .B a Abre para escrita. O arquivo é criado se não existir. O fluxo é posicionado no fim do arquivo. .TP .B a+ Abre para leitura e escrita. O arquivo é criado se não existir. O fluxo é posicionado no fim do arquivo. .PP A string de .I 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.) .PP Quaisquer arquivos criados terão o modo .BR S_IRUSR \&| S_IWUSR \&| S_IRGRP \&| S_IWGRP \&| S_IROTH \&| S_IWOTH (0666), conforme modificado pelo valor de 'umask' do processo (veja .BR umask (2). .PP 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 .B fseek ou .B fgetpos entre operações de escrita e leitura em tais fluxos. Esta operação pode ser um aparente no-op ("no operation"), como em \fIfseek(..., 0L, SEEK_CUR)\fR chamado para seu efeito colateral de sincronismo. .PP A função .B fdopen associa um fluxo com o descritor de arquivos existente, .IR fildes . O .I 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 .IR 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 .B fdopen for fechado. O resultado da aplicação de .B fdopen para um objeto de memória compartilhado é indefinido. .PP A função .B freopen abre o arquivo cujo nome é a string apontada por .I path e associa o fluxo apontado por .I stream a ele. O fluxo original (se existir) é encerrado. O argumento .I mode é usado apenas como na função .B fopen. O uso primário da função .B freopen é mudar o arquivo associado com o fluxo de texto padrão .IR "" ( stderr ", " stdin ", ou " stdout ). .SH "VALORES DE RETORNO" Em caso de término bem-sucedido, .BR fopen , .B fdopen e .B freopen retornam um ponteiro para .B FILE. Caso contrário, é retornado um .B NULL e a variável global .I errno é setada para indicar o erro. .SH ERROS .TP .B EINVAL O .I mode fornecido para .BR fopen , .BR fdopen , ou .B freopen era inválido. .PP As funções .BR fopen , .B fdopen e .B freopen também podem falhar e setar .I errno para quaisquer dos erros especificados para a rotina .BR malloc (3). .PP A função .B fopen também pode falhar e setar .I errno para quaisquer dos erros especificados para a rotina .BR open (2). .PP A função .B fdopen também pode falhar e setar .I errno para quaisquer dos erros especificados para a rotina .BR fcntl (2). .PP A função .B freopen também pode falhar e setar .I errno para quaisquer dos erros especificados para as rotinas .BR open (2), .BR fclose (3) e .BR fflush (3). .SH "VEJA TAMBÉM" .BR open "(2), " fclose (3) .SH PADRÕES As funções .B fopen e .B freopen estão em conformidade com ANSI X3.159-1989 (``ANSI C''). A função .B fdopen está em conformidade com IEEE Std1003.1-1988 (``POSIX.1''). .SH TRADUÇÃO PARA A LÍNGUA PORTUGUESA \&\fR\&\f(CWRUBENS DE JESUS NOGUEIRA (tradução)\fR \&\fR\&\f(CWXXXXXX XX XXXXX XXXXXXXX (revisão)\fR