Ferramentas do usuário

Ferramentas do site


arquivos_funcoes_de_nivel_2

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.


arquivos_funcoes_de_nivel_2 [2023/09/12 16:14] (atual) – criada - edição externa 127.0.0.1
Linha 1: Linha 1:
 +====== 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.