Fim do arquivo

Da Wikipédia, a enciclopédia livre
Ir para a navegação Pular para pesquisar

Na computação , o fim do arquivo ( EOF ) [1] é uma condição em um sistema operacional de computador em que nenhum outro dado pode ser lido de uma fonte de dados. A fonte de dados geralmente é chamada de arquivo ou fluxo .

Detalhes

Na biblioteca padrão C , as funções de leitura de caracteres, como getchar , retornam um valor igual ao valor simbólico (macro) EOFpara indicar que ocorreu uma condição de fim de arquivo. O valor real de EOFdepende da implementação e deve ser negativo (mas geralmente é -1, como em glibc [2] ). As funções de leitura de bloco retornam o número de bytes lidos e, se for menor do que o solicitado, o fim do arquivo foi atingido ou ocorreu um erro (verificação errnoou função dedicada, como ferroré necessário para determinar qual).

Personagem EOF

A entrada de um terminal nunca realmente "termina" (a menos que o dispositivo seja desconectado), mas é útil inserir mais de um "arquivo" em um terminal, portanto, uma sequência de teclas é reservada para indicar o fim da entrada. No UNIX , a conversão do pressionamento de tecla para EOF é realizada pelo driver do terminal, portanto, um programa não precisa distinguir terminais de outros arquivos de entrada. Por padrão, o driver converte um caractere Control-D no início de uma linha em um indicador de fim de arquivo. Para inserir um caractere real de Control-D (ASCII 04) no fluxo de entrada, o usuário o precede com um caractere de comando "aspas" (geralmente Control-V ). O AmigaDOS é semelhante, mas usa Control-\ em vez de Control-D.

Em DOS e Windows (e em CP/M e muitos sistemas operacionais DEC , como o monitor PDP-6 , [3] RT-11 , VMS ou TOPS-10 [4] ), a leitura do terminal nunca produzirá um EOF. Em vez disso, os programas reconhecem que a fonte é um terminal (ou outro "dispositivo de caractere") e interpretam um determinado caractere reservado ou sequência como um indicador de fim de arquivo; mais comumente é um ASCII Control-Z , código 26. Alguns programas do MS-DOS, incluindo partes do shell do Microsoft MS-DOS ( COMMAND.COM ) e programas utilitários do sistema operacional (como EDLIN), trate um Control-Z em um arquivo de texto como marcando o final de dados significativos e/ou acrescente um Control-Z ao final ao escrever um arquivo de texto. Isso foi feito por duas razões:

  • Retrocompatibilidade com CP/M . O sistema de arquivos CP/M (e também o FAT original de 8 bits implementado no Microsoft BASIC ) registrava apenas os comprimentos dos arquivos em múltiplos de "registros" de 128 bytes, portanto, por convenção, um caractere Control-Z era usado para marcar o final de dados significativos se terminasse no meio de um registro. O sistema de arquivos FAT12 introduzido com o 86-DOS e o MS-DOS sempre registrou o tamanho exato em bytes dos arquivos, portanto, isso nunca foi necessário no DOS.
  • Ele permite que os programas usem o mesmo código para ler a entrada de um terminal e um arquivo de texto.

No padrão de fita magnética ANSI X3.27-1969 , o final do arquivo era indicado por uma marca de fita , que consistia em um intervalo de aproximadamente 3,5 polegadas de fita seguido por um único byte contendo o caractere 13 (hex) para nove faixas fitas e 17 (octal) para fitas de sete faixas . [5] O fim da fita , comumente abreviado como EOT , era indicado por duas marcas de fita. Esse era o padrão utilizado, por exemplo, no IBM 360 . A faixa reflexiva usada para anunciar o fim físico iminente da fita também era chamada de marcador EOT .

Veja também

Referências

  1. ^ Pollock, Wayne. "Visão geral do documento Shell Here" . hccfl.edu. Arquivado do original em 29/05/2014 . Recuperado em 28/05/2014 .
  2. ^ "A biblioteca GNU C" . www.gnu.org .
  3. ^ "Tabela de características do dispositivo IO - console ou teletipo". PDP-6 Manual do Sistema de Multiprogramação (PDF) . Maynard, Massachusetts, EUA: Digital Equipment Corporation (DEC). 1965. pág. 43. DEC-6-0-EX-SYS-UM-IP-PRE00. Arquivado (PDF) do original em 2014-07-14 . Recuperado 2014-07-10 . (1+84+10 páginas)
  4. ^ "5.1.1.1. Funções dependentes do dispositivo - Modos de dados - Software Full-Duplex A(ASCII) e AL(Linha ASCII)". Manual de referência do PDP-10: Comunicação com o monitor - Monitores de compartilhamento de tempo (PDF) . Vol. 3. Digital Equipment Corporation (DEC). 1969. pp. 5-3 – 5-6 [5-5 (431)]. Arquivado (PDF) do original em 2011-11-15 . Recuperado 2014-07-10 . (207 páginas)
  5. ^ "Transferência de fita (anterior a 1977): mídia de troca: especificações MARC 21 para estrutura de registro, conjuntos de caracteres e mídia de troca (Biblioteca do Congresso)" . www.loc.gov .