Introduce old redir program
[lcapit-junk-code.git] / Documentation / pt_BR / lib-padrao.txt
blob43def3a242d9a6ca33e0f651c07d0e54ee7721e9
1 Standard I/O Library
2 --------------------
4 Buferização
5 -----------
7  O objetivo no uso de buferização pela biblioteca de I/O padrão é minimizar as
8 chamadas para read()/write(). Além disso, a biblioteca manipula a buferização
9 automaticamente, tentado obter o melhor valor do buffer para read() e write().
11  Existem três tipos de bufferização:
13 1. fully-buffered ou block-buffered: a I/O acontece quando o buffer está cheio,
14 ou quando fflush() é chamada;
16 2. line-buffered: a I/O acontece quando um caracter de nova-linha é encontrado
17 em uma input ou ouput, ou quando o buffer está cheio, ou quando fflush() é
18 chamada ou quando entrada é requisitada através da biblioteca de I/O padrão
19 para uma stream não bufferizada ou line-buffered stream (no último caso o
20 flush acontece porque o dado já pode estar disponível)
22 3. unbuffered: a lib não faz bufferização.
25 ----> stdout: line-buffered
26 ----> stderr: unbuffered
27 ----> normal files: fully-buffered
29  Todas as setagems podem ser alteredas com a função setvbuf().
32 Lendo e escrevendo uma stream (fluxo)
33 -------------------------------------
35 Unformatted I/O
36 ---------------
38  There are three types:
40 1. Character-at-a-time I/O
41 --------------------------
43    input functions:
44    ----------------
46    getc(), fgetc(), getchar()
48    a diferença entre getc() e fgetc() é getc() pode ser implementada como uma macro
49    e fgetc() sempre vai ser uma função. Isso significa que podemos pegar o endereço
50    de fgetc(), e não podemos usar getc() com side-effects. E também getc() é feita
51    para ser rápida
53    para destinguir erros (pois essas funções também retornam EOF em caso de erro)
54    use: ferror() ou feof() e também clearerr()
56    output functions:
57    ----------------
59    putc(), fputc(), putchar()
61 2. Line-at-a-Time I/O
62 ---------------------
64    input functions:
65    ----------------
67    fgets(), gets()
69    output functions:
70    ----------------
72    fputs(), puts()
74 3. Binary I/O
75 --------------
77         fwrite(), fread()
79         Tomar cuidado quando estiver utilizando essas funções para estruturas,
80         pois compiladores diferentes podem organizar as estruturas de maneira
81         diferente.
85 Formatted I/O
86 -------------
88 1. Output
89 ---------
91 printf() functions
93 2. Input
94 --------
96 scanf() functions