Documente Academic
Documente Profesional
Documente Cultură
Arquivos na Linguagem C
STREAMS
Streams so fluxos de dados armazenados em buffers de
memria interna e associados a arquivos em dispositivos
externos
Na linguagem C um stream est associado a um tipo de
dado denominado FILE * e pode ser denominado de
apontador de arquivos
A E/S de alto nvel utiliza streams
A conexo de um arquivo a um stream feita abrindo o
arquivo. A conexo termina quando o mesmo fechado.
Entrada/Sada formatada
fscanf() semelhante a scanf(), s que recebe um
parmetro a mais indicando o stream de onde devem ser
lidos os dados.
#include <stdio.h>
int fscanf(FILE *fp, const char *formato, ...);
scanf(...) fscanf(stdin, ...)
Leitura/Escrita Direta
fread() l de um stream um conjunto de objetos de um
tamanho especificado, armazenando-os em um vetor de
dados. Retorna o nmero de objetos realmente lidos.
#include <stdio.h>
size_t fread(void *buf, size_t tamanho,
size_t quantidade, FILE *stream);
fwrite() escreve num stream um conjunto de objetos de
um tamanho especificado. Os objetos a serem armazenados
devem estar em um vetor de dados. fwrite() retorna o
nmero de objetos realmente escritos.
Manipulando erros
ferror() retorna um valor diferente de zero se o indicador
de erro para o stream indicado estiver setado.
#include <stdio.h>
int ferror(FILE *stream);
Varivel errno definida em <errno.h> contm o cdigo do
ltimo erro ocorrido.
feof() retorna um valor diferente de zero se o indicador
fim de arquivo para o stream indicado estiver setado.
#include <stdio.h>
int feof(FILE *stream);
Manipulando erros
clearerr() apaga os indicadores de erro e fim de arquivo
para o stream especificado.
#include <stdio.h>
void clearerr(FILE *stream);
perror() imprime na sada padro de erros a string
passada como parmetro seguida de dois pontos (:) e uma
mensagem associada a o ltimo erro ocorrido.
#include <stdio.h>
void perror(const char *s);
Arquivos temporrios
tmpfile() cria um arquivo temporrio no modo "w+b",
este arquivo ser removido automaticamente quando for
fechado. Retorna um stream vlido em caso de sucesso e
NULL em caso de falha.
#include <stdio.h>
FILE *tmpfile(void);
tmpnam() devolve um nome de arquivo temporrio no
existente no diretrio corrente. Recebe um apontador para
o vetor que ir armazenar o nome ou NULL, caso em que
devolvido o endereo de um vetor esttico interno.
#include <stdio.h>
char *tmpnam(char *strnome);
Descritores de Arquivos
Descritores de arquivos so nmeros inteiros que identificam
um arquivo junto ao sistema operacional.
So devolvidos pelas rotinas de E/S de baixo nvel que abrem
ou criam um arquivo
So utilizados como um parmetro em todas as rotinas de
E/S de baixo nvel que fazem a manipulao com o arquivos
Toda aplicao em C j recebe trs arquivos abertos, que
tm os seguintes descritores:
0 (associado entrada padro)
1 (associado sada padro)
2 (associado sada padro de erros)
exit(3);
}
}
close(fd1);
close(fd2);
return (0);
}
#include <io.h>
long lseek(int fd, long desloc, int origem);
os valores de origem, so os mesmos usados em fseek:
SEEK_SET - Incio do arquivo
SEEK_CUR - posio atual do arquivo
SEEK_END - final do arquivo