Curso de C

Rotinas de Arquivo Compatíveis com o Sistema UNIX


O sistema UNIX é um dos sistemas operacionais mais usados. O C possui uma série de comando de arquivos compatíveis com este S.O.. Vamos ver alguns deles agora. Para maiores informações, não deixe de consultar o manual do seu compilador.

Uma diferença importante entre o sistema já ensinado e o UNIX é que o unix usa, ao invés do FILE*, um "manipulador de arquivos". Este é do tipo int. Mas como o C discutido em nosso curso até agora tem sido o mais ANSI possível (sempre que não isto é documentado), se o seu compilador (ainda que em Unix) é ANSI, tudo dito nas páginas anterior continua valendo. O Unix provê algumas possibilidades a mais. Veja só:

open

Protótipo:

                int open (char *nome_do_arquivo,int modo,int acesso);

Abre um arquivo. Os parâmetros modo e acesso determinam que tipo de uso o programador fará do arquivo. Para uma referência completa sobre os valores válidos para estes parâmetros, consulte o manual do seu compilador.

creat

A função open() abre um arquivo já existente. Já a função creat() cria um novo arquivo para escrita. Seu protótipo é:

                int creat (char *nome_do_arquivo,int acesso);

close

A função close() de protótipo

                int close (int da);

Aqui vale ressaltar que o inteiro passado para a função close() é o descritor de arquivo retornado por open() ou por creat().

read

Protótipo:

                int read (int da,void *buffer,unsigned tamanho);

Lê um número de bytes especificado em tamanho. Estes bytes são gravados no buffer para serem depois aproveitados pelo programador. da indica o arquivo do qual serão lidos os dados. A função retorna o número de caracteres lidos (este número pode ser diferente do número de caracters que se pediu que fossem lido caso se tenha, por exemplo, chegado ao fim do arquivo) e -1 em caso de erro.

write

De funcionamento muito parecido com read() a função write() tem o seguinte protótipo:

                int write (int da,void *buffer,unsigned tamanho);

A função write() escreve os caracteres do buffer no arquivo especificado por da. Retorna o número de caracteres que de fato foram escritos. Retorna -1 no caso de erro.

unlink

É o equivalente UNIX da função remove() vista na seção 9.7.10. Seu protótipo é:

                int unlink (char *nome_do_arquivo);

O arquivo é deletado e a função retorna zero no caso de sucesso.

lseek

Protótipo:

                long lseek (int da,long numero_de_bytes,int origem);

A função lseek() permite a implementação de acesso randômico no UNIX. A função lseek() funciona como a função fseek() descrita na seção 9.7.9. A origem pode assumir os mesmos valores (SEEK_SET, SEEK_CUR e SEEK_END).


   

Dúvidas? De uma olhadinha em nossoFAQ

Perguntas para a lista do Curso de C