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 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. |