Descriptor de archivo

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 10 de abril de 2021; las comprobaciones requieren 2 ediciones .

El descriptor de archivo  es un entero no negativo. Cuando se crea una nueva secuencia de E/S, el núcleo vuelve al proceso que creó la secuencia de E/S, su descriptor de archivo.

Se puede acceder a todos los flujos de E/S (que se pueden asociar con archivos, así como directorios, sockets y FIFO ) a través de los llamados descriptores de archivos.

De forma predeterminada , los shells de Unix asocian el descriptor de archivo 0 con la entrada estándar del proceso (teclado), el descriptor de archivo 1 con la salida estándar del proceso (terminal) y el descriptor de archivo 2 con el flujo de diagnóstico (donde generalmente se escriben los mensajes de error). Muchos shells de Unix y muchas aplicaciones respetan esta convención, y de ninguna manera forma parte del kernel.

El estándar POSIX.1 reemplazó los "números mágicos" 0, 1, 2 con las constantes simbólicas STDIN_FILENO, STDOUT_FILENO y STDERR_FILENO, respectivamente.

Los descriptores de archivos pueden tomar valores de 0 a OPEN_MAX. Según POSIX.1, el valor de OPEN_MAX es 19. En sistemas operativos reales, este valor puede ser mayor.

En el sistema operativo Windows , para obtener un identificador de archivo, debe abrirse con la función CreateFile. El descriptor (o identificador) resultante se puede usar para trabajar con ese archivo. Si es un controlador, el identificador se utilizará en la función DeviceIoControl.

Véase también