STDIO(3)

NOME
stdio - funções de biblioteca padrão de entrada/saída

SINÓPSE
#include <stdio.h>

FILE *stdin;
FILE *stdout;
FILE *stderr;

DESCRIÇÃO
A biblioteca padrão de E/S fornece uma interface simples e eficiente de fluxo bufferizado de E/S. Entrada e saída é mapeada nos fluxos lógicos de dados e as características físicas de E/S são ocultadas. As funções e macros são listadas abaixo; maiores informações estão disponíveis nas páginais de manual individuais.

Um fluxo associado com um arquivo exterior (que pode ser um dispositivo físico) pela abertura, com a função open (opening)," do mesmo, que pode envolver a criação de um novo arquivo. Criar um arquivo existente faz com que seu conteúdo seja descartado. Se um arquivo pode suportar requisições posicionais (tal como um arquivo em disco, ao contrário de um terminal), então um indicador de posição de arquivo associado ao fluxo é posicionado no início do arquivo (byte zero), exceto se o arquivo foi aberto em modo de adição. Se o modo de adição for usado, o indicador de posição será posicionado no fim-do-arquivo. O indicador de posição é mantido pelas leituras, escrita e requisições de posicionamento subsequentes. Toda entrada ocorre como se os caracteres fossem lidos por sucessivas chamadas para a função fgetc(3) ; toda saída toma lugar como se todos os caracteres fossem lidos por sucessivas chamadas para função fputc(3).

Um arquivo é desassociado de um fluxo pelo fechamento, usando a função close (closing), do mesmo. Fluxos de saída são descarregados (todo o conteúdo de um buffer não escrito é transferido para o ambiente) antes do fluxo ser desassociado do arquivo. O valor de um ponteiro para um objeto FILE é indeterminado após um arquivo ser fechado (lixo).

Um arquivo pode ser subsequentemente reaberto, pelo mesmo ou por outro programa, e seu conteúdo recuperado ou modificado (se puder ser reposicionado no início). Se a função 'main' retorna para seu chamador original, ou a função exit(3) é chamada, todos os arquivos abertos são fechados (portanto todos os fluxos de saída são descarregados) antes do fim do programa. Outros métodos de finalização de programa, tal como abort(3) não se preocupam em fechar os arquivos de maneira apropriada.

No início do programa, três fluxos de texto estão predefinidos e não precisam ser abertos explicitamente — entrada padrão (para leitura de entrada convencional), — saída padrão (para escrita de entrada convencional), e erro padrão (para escrita de saída de diagnósticos). Estes fluxos são abreviados como stdin,stdout e stderr. Quando aberto, o fluxo de erro padrão não está totalmente bufferizado; a entrada e a saída padrão são totalmente bufferizados e se, e somente se, os fluxos não apontarem para um dispositivo interativo.

Fluxos de saída que se referem a dispositivos de terminal são sempre bufferizados em linha por padrão; saída pendente para tais fluxos são escritas automaticamente sempre que um fluxo de entrada que se refere a um dispositivo de terminal for lido. Em casos em que uma grande quantidade de computação é feita após a impressão de uma linha em um terminal de saída, é necessário fflush(3) a saída padrão antes de desligar e processar então a saída aparecerá.

A biblioteca stdio é uma parte da biblioteca libc e as rotinas são automaticamente carregadas quando necessário pelos compiladores cc(1) e pc(1). As seções de SINÓPSES das seguintes páginas de manual indicam qual arquivos include devem ser usadas, com o que se parece a declaração da função para o compilador e que variáveis externas interessam.

As seguintes são definidas como macros; estes nomes não podem ser reutilizados sem antes remover suas definições atuais com #undef: BUFSIZ, EOF, FILENOME_MAX, FOPEN_MAX, L_cuserid, L_ctermid, L_tmpnam, NULL, SEEK_END, SEEK_SET, SEE_CUR, TMP_MAX, clearerr, feof, ferror, fileno, fropen, fwopen, getc, getchar, putc, putchar, stderr, stdin, stdout. Versões de função das funções de macro feof, ferror, clearerr, fileno, getc, getchar, putc, e putchar existem e serão usadas se as definições de macro estiverem explicitamente removidas.

VEJA TAMBÉM
open(2), close(2), read(2), write(2), stdout(3).

PROBLEMAS
As funções padrão bufferizadas não interagem com algumas outras funções de sistema e biblioteca, especialmente vfork e abort. Este pode não ser o caso no Linux.

DE ACORDO COM
A biblioteca stdio está em confomidade com ANSI X3.159-1989 ('ANSI C').

LISTA DE FUNÇÕES

Função
    Descrição

clearerr
    verifica e reconfigura o estado do fluxo

fclose
    fecha um fluxo

fdopen
    funções de abertura de fluxo

feof
    verifica e reconfigura o estado do fluxo

ferror
    verifica e reconfigura o estado do fluxo

fflush
    descarrega um fluxo

fgetc
    lê o próximo caractere ou palavra de um fluxo de entrada

fgetline
    lê uma linha do fluxo

fgetpos
    reposiciona um fluxo

fgets
    lê uma linha de um fluxo

fileno
    verifica e reconfigura o estado do fluxo

fopen
    funções de abertura de fluxo

fprintf
    conversão de saída formatada

fpurge
    descarrega um fluxo

fputc
    escreve um caractere ou palavra em um fluxo

fputs
    escreve uma linha em um fluxo

fread
    fluxo binário de entrada/saída

freopen
    funções de abertura de fluxo

fropen
    abre um fluxo

fscanf
    conversão de formato de entrada

fseek
    reposiciona um fluxo

fsetpos
    reposiciona um fluxo

ftell
    reposiciona um fluxo

fwrite
    entrada/saída de fluxo binário

get lê o próximo caractere ou palavra de um fluxo de entrada

getchar
    lê o próximo caractere ou palavra de um fluxo de entrada

gets
    lê uma linha de um fluxo

getw
    lê o próximo caractere ou palavra de um fluxo de entrada

mktemp
    cria um nome de arquivo temporário (único)

perror
    mensagens de erro do sistema

printf
    conversão de saída formatada

putc
    escreve um caractere ou palavra no fluxo

putchar
    escreve um caractere ou palavra no fluxo

puts
    escreve uma linha no fluxo

putw
    escreve um caractere ou palavra no fluxo

remove
    remoção de entrada de diretório

rewind
    reposicionamento de fluxo

scanf
    conversão de formato de entrada

setbuf
    operações de buffering de fluxo

setbuffer
    operações de buffering de fluxo

setlinebuf
    operações de buffering de fluxo

setvbuf
    operações de buffering de fluxo

sprintf
    conversão de entrada formatada

sscanf
    conversão do formato de entrada

strerror
    mensagens de erro do sistema

sys_errlist
    mensagens de erro do sistema

sys_nerr
    mensagens de erro do sistema

tempnam
    rotinas de arquivo temporário

tmpfile
    rotinas de arquivo temporário

tmpnam
    rotinas de arquivo temporário

ungetc
    un-get caractere do fluxo de entrada

vfprintf
    conversão de saída formatada

vfscanf
    conversão de formato de entrada

vprintf
    conversão de saída formatada

vscanf
    conversão de formato de entrada

vsprintf
    conversão de saída formatada

vsscanf
    conversão de entrada formatada

TRADUZIDO POR LDP-BR EM 01/07/2001.

  Tradução:
Valter Ferraz Sanches <vfs@ezlinux.cjb.net>

  Revisão.:
André Luiz Fassone <lonely_wolf@ig.com.br>