Descritor de arquivo

Os descritores de arquivo para entrada, saída e erro

Em programação de computadores, um descritor de arquivo (português brasileiro) ou descritor de ficheiro (português europeu), do inglês file descriptor (FD), é um indicador abstrato para acessar um arquivo. O termo é geralmente usado em sistemas operacionais POSIX. Para o Microsoft Windows, o termo "handle de arquivo" é mais usado.

Em POSIX, um descritor de arquivo é um inteiro, especificamente do tipo int de C. Existem três descritores de arquivo padrões em POSIX, que correspondem aos três fluxos padrão[1], os quais provavelmente todos os processos (exceto talvez uma daemon) deve esperar ter:

Valor inteiro Nome
0 Entrada padrão (stdin)
1 Saída padrão (stdout)
2 Erro padrão (stderr)

De forma geral, um descritor de arquivo é um índice para um registro de uma estrutura de dados do núcleo que contém detalhes de todos os arquivos abertos. Em POSIX tal estrutura de dado é chamada tabela do descritor de arquivo, e cada processo possui sua própria tabela. Uma aplicação passa o descritor de arquivo para o núcleo através duma chamada de sistema, e o kernel acessa o arquivo representando a aplicação, baseado no descritor. A aplicação não pode manipular a tabela do descritor de arquivo diretamente.

Em sistema Unix-like, descritores de arquivos podem se referir não somente a arquivos, mas também diretórios, dispositivos de memória, soquetes e pipes nomeados ou não nomeados, seguindo a máxima da plataforma de que "tudo é arquivo".[2]

Notas

  1. Santos, 2000
  2. Maillard, p. 41

Referências

  • Nicolas Maillard. «Introdução à Programação». UFRGS. Consultado em 10 de julho de 2008. Arquivado do original em 3 de setembro de 2006 
  • Celso Alberto Saibel Santos (Outubro de 2000). «Descritores de arquivo e ponteiros para os arquivos». Programação em Tempo Real. Módulo II - Comunicação InterProcessos. UFRN. Consultado em 10 de julho de 2008