Arquivos pré-definidos
Quando se começa a execução de um programa, o sistema automaticamente abre alguns arquivos pré-definidos:
- stdin: dispositivo de entrada padrão (geralmente o teclado);
- stdout: dispositivo de saída padrão (geralmente o vídeo);
- stderr: dispositivo de saída de erro padrão (geralmente o vídeo);
- stdaux: dispositivo de saída auxiliar (em muitos sistemas, associado à porta serial);
- stdprn: dispositivo de impressão padrão (em muitos sistemas, associado à porta paralela).
Cada uma destas constantes pode ser utilizada como um ponteiro para FILE, para acessar os periféricos associados a eles. Desta maneira, pode-se, por exemplo, usar:
c =getc(stdin);
para efetuar a leitura de um caracter a partir do teclado, ou:
putc(c, stdout);
para imprimí-lo na tela.
fgets
Lê uma string de um arquivo. A função lê a string até que um caracter de nova linha seja lido /n ou tamanho-1 caracteres tenham sido lidos. Se o caracter de nova linha for lido, ele fará parte da string, o que não acontecia com gets. A string resultante sempre terminará com /0 (por isto somente tamanho-1 caracteres, no máximo, serão lidos).
Protótipo: char *fgets (char *str, int tamanho, FILE *fp);
- Parâmetro 1 "char *str": a variável que receberá a string.
- Parâmetro 2 "int tamanho": o limite máximo de caracteres a serem lidos.
- Parâmetro 3 "FILE *fp": o arquivo que será lido.
fputs
Escreve uma string num arquivo.
Protótipo: char *fputs (char *str, FILE *fp);
- Parâmetro 1: "char *str" - a variável que contém os dados a serem escritos no arquivo.
- Parâmetro 2: "FILE *fp" - o arquivo a ser escrito.
fread
Leitura de bloco de dados.
Protótipo: unsigned fread (void *buffer, int numero_de_bytes, int count, FILE *fp);
- Parâmetro 1: "void *buffer" - variável na qual serão armazenados os dados lidos.
- Parâmetro 2: "int numero_de_bytes" - o número de bytes a ser lido.
- Parâmetro 3: "int count" - indica quantas unidades devem ser lidas.
Parâmetro 4: "FILE *fp" - arquivo a ser lido.
fwrite
Leitura de bloco de dados.
Protótipo: unsigned fwrite (void *buffer, int numero_de_bytes, int count, FILE *fp);
- Parâmetro 1: "void *buffer" - variável na qual serão transmitidos os dados ao arquivo.
- Parâmetro 2: "int numero_de_bytes" - o número de bytes a ser escrito.
- Parâmetro 3: "int count" - indica quantas unidades devem ser escritas.
- Parâmetro 4: "FILE *fp" - arquivo a ser escrito.
fseek
Procuras e acessos randômicos em arquivos. Esta move a posição corrente de leitura ou escrita no arquivo de um valor especificado, a partir de um ponto especificado.
Protótipo: int fseek (FILE *fp, long numbytes, int origem);
- Parâmetro 1: "FILE *fp" - arquivo a ser manipulado.
- Parâmetro 2: "long numbytes" - indica quantos bytes o cursor de posição do arquivo será movimentado apartir da sua posição atual.
- Parâmetro 3: "int origem" - indica apartir de onde os numbytes serão contados. Abaixo uma tabela com os possíveis valores:
Nome |
Valor |
Significado |
SEEK_SET |
0 |
Início do arquivo |
SEEK_CUR |
1 |
Ponto corrente no arquivo |
SEEK_END |
2 |
Fim do arquivo |
rewind
Retorna a posição corrente do arquivo para o início.
Protótipo: void rewind (FILE *fp);
- Parâmetro: "FILE *fp" - arquivo a ser manipulado.