O Sistema de Arquivos

Como a linguagem C foi originalmente desenvolvida sobre o sistema operacional Unix, ela inclui um segundo sistema de E/S com arquivos em disco que reflete basicamente as rotinas de arquivo em disco de baixo nível do Unix. O sistema de arquivo tipo Unix usa funções que são separadas das funções do sistema de arquivo com buffer.

Estas funções é parte integrante do sistema operacional e são conhecidas como sendo funções de nível 2 devido a serem definidas na sessão 2 do manual do Unix ou como sistema de arquivos sem buffer. As funções de E/S são listadas a seguir:

  • read - Lê um buffer de dados
  • write - Escreve um buffer de dados
  • open- Abre um arquivo em disco
  • close - Fecha um arquivo em disco
  • lseek - Move ao byte especificado em um arquivo
  • unlink - Remove um arquivo do diretório
  • remove - Remove um arquivo do diretório
  • rename - Renomeia um arquivo no diretório.
  • creat - Cria um novo arquivo ou trunca um arquivo já existente.

Existe um conjunto de operações de E/S de mais alto nível, chamadas funções de nível 3, definidas como parte integrante da biblioteca padrão do ANSI C. Estas funções de alto nível fazem uso das funções de nível 2 também.

Com as funções de nível 2 é possível se implementar qualquer tipo de acesso ou método de acesso à arquivos.

Ao contrário do sistema de E/S de alto nível (nível 3), o sistema de baixo nível (nível 2) não utiliza ponteiros de arquivo do tipo FILE, mas descritores de arquivo do tipo int. Na função de abertura de arquivo, o sistema operacional devolve para o programa o descritor de arquivo que ele atribuiu ao arquivo. Todas as outras funções devem receber este descritor para identificar sobre qual arquivo estamos querendo realizar a operação.

Descritores Pré-alocados

Desde os primeiros sistemas Unix, por convenção, o interpretador de comandos (shell) sempre que cria um processo, abre três arquivos e passa os descritores dos mesmos para o processo. Estes descritores são utilizado por todas as funções de nível 2 e 3 do sistema.

O descritor de número 0 (zero) representa a Entrada Padrão (nas funções de nível 3, stdin). Todas as funções de entrada de dados que não especificam um descritor de arquivos irão ler os seus dados deste arquivo.

O descritor número 1 representa a Saída Padrão (nas funções de nível 3, stdout). Todas as funções que fazem a saída de dados e não especificam um descritor irão utilizar este arquivo como saída de dados.

Por último, o descritor 2 é reconhecido pelo sistema como sendo a Saída de Erro Padrão do sistema (nas funções de nível 3, stderr). Todas as funções que emitem mensagens de erro irão utilizar este descritor com saída das informações.

arquivos_funcoes_de_nivel_2.txt · Última modificação: 2008/04/08 12:16 por laureano
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0