stringtranslate.com

Fin del archivo

En informática , el fin de archivo ( EOF ) [1] es una condición en un sistema operativo de computadora en la que no se pueden leer más datos de una fuente de datos. La fuente de datos generalmente se denomina archivo o flujo .

Detalles

En la biblioteca estándar de C , las funciones de lectura de caracteres como getchar devuelven un valor igual al valor simbólico (macro) EOFpara indicar que se ha producido una condición de fin de archivo. El valor real de EOFdepende de la implementación y debe ser negativo (pero normalmente es −1, como en glibc [2] ). Las funciones de lectura de bloques devuelven la cantidad de bytes leídos y, si es menor que la solicitada, se llegó al final del archivo o se produjo un error (se requiere la comprobación de errnouna función dedicada, como la que ferrorse necesita para determinar cuál).

Carácter EOF

La entrada desde un terminal nunca "termina" realmente (a menos que el dispositivo esté desconectado), pero es útil ingresar más de un "archivo" en un terminal, por lo que se reserva una secuencia de teclas para indicar el final de la entrada. En UNIX, la traducción de la pulsación de tecla a EOF la realiza el controlador del terminal, por lo que un programa no necesita distinguir los terminales de otros archivos de entrada. De manera predeterminada, el controlador convierte un carácter Control-D al comienzo de una línea en un indicador de fin de archivo. Para insertar un carácter Control-D (ASCII 04) real en el flujo de entrada, el usuario lo precede con un carácter de comando de "comillas" (generalmente Control-V ). AmigaDOS es similar, pero utiliza Control-\ en lugar de Control-D.

En DOS y Windows (y en CP/M y muchos sistemas operativos DEC como el monitor PDP-6 , [3] RT-11 , VMS o TOPS-10 [4] ), la lectura desde el terminal nunca producirá un EOF. En cambio, los programas reconocen que la fuente es un terminal (u otro "dispositivo de caracteres") e interpretan un carácter o secuencia reservada dada como un indicador de fin de archivo; lo más común es un Control-Z ASCII , código 26. Algunos programas MS-DOS, incluidas partes del shell Microsoft MS-DOS ( COMMAND.COM ) y programas de utilidad del sistema operativo (como EDLIN ), tratan un Control-Z en un archivo de texto como si marcara el final de datos significativos y/o agregan un Control-Z al final cuando se escribe un archivo de texto. Esto se hizo por dos razones:

En el estándar de cinta magnética ANSI X3.27-1969 , el final del archivo se indicaba mediante una marca de cinta , que consistía en un espacio de aproximadamente 3,5 pulgadas de cinta seguido de un solo byte que contenía el carácter 0x13(hexadecimal) para cintas de nueve pistas y 017(octal) para cintas de siete pistas . [5] El final de la cinta , comúnmente abreviado como EOT , se indicaba mediante dos marcas de cinta. Este era el estándar utilizado, por ejemplo, en IBM 360. La banda reflectante que se usaba para anunciar el final físico inminente de la cinta también se llamaba marcador EOT .

Véase también

Referencias

  1. ^ Pollock, Wayne. "Descripción general del documento de Shell Here". hccfl.edu. Archivado desde el original el 29 de mayo de 2014. Consultado el 28 de mayo de 2014 .
  2. ^ "La biblioteca C de GNU". www.gnu.org .
  3. ^ "Tabla de características de dispositivos IO - Consolas o teletipos". Manual del sistema de multiprogramación PDP-6 (PDF) . Maynard, Massachusetts, EE. UU.: Digital Equipment Corporation (DEC). 1965. pág. 43. DEC-6-0-EX-SYS-UM-IP-PRE00. Archivado (PDF) desde el original el 14 de julio de 2014. Consultado el 10 de julio de 2014 .(1+84+10 páginas)
  4. ^ "5.1.1.1. Funciones dependientes del dispositivo - Modos de datos - Software full-duplex A(ASCII) y AL(Línea ASCII)". Manual de referencia PDP-10: Comunicación con el monitor - Monitores de tiempo compartido (PDF) . Vol. 3. Digital Equipment Corporation (DEC). 1969. págs. 5-3 – 5-6 [5-5 (431)]. Archivado (PDF) desde el original el 2011-11-15 . Consultado el 2014-07-10 .(207 páginas)
  5. ^ "Transferencia de cinta (antes de 1977): Medios de intercambio: Especificaciones MARC 21 para estructura de registros, conjuntos de caracteres y medios de intercambio (Biblioteca del Congreso)". www.loc.gov .