¿Cuál es el descriptor de archivo 3 asignado por defecto?


19
$ ls -og /proc/self /proc/self/fd
lrwxrwxrwx 1 64 Jun 18 11:12 /proc/self -> 32157

/proc/self/fd:
total 0
lrwx------ 1 64 Jun 22  2012 0 -> /dev/tty1
lrwx------ 1 64 Jun 22  2012 1 -> /dev/tty1
lrwx------ 1 64 Jun 22  2012 2 -> /dev/tty1
lr-x------ 1 64 Jun 22  2012 3 -> /proc/32157/fd

¿Cuál es el descriptor de archivo 3 asignado por defecto?

Respuestas:


34

Nada: hay tres descripciones de archivo estándar, STDIN, STDOUT y STDERR. Se asignan a 0, 1 y 2 respectivamente.

Lo que está viendo allí es un artefacto de la forma en que ls(1)funciona: para leer el contenido del /proc/self/fddirectorio y mostrarlo, necesita abrir ese directorio.

Eso significa que obtiene un identificador de archivo, generalmente el primero disponible ... por lo tanto, 3.

Si tuviera que correr, por ejemplo, caten una consola separada e inspeccionarlo /proc/${pid}/fd, descubriría que solo se asignaron los primeros tres.


Ah, eso explica el resultado, incluido el hecho de que también 3apunta /proc/32157/fd. (¿Por qué me perdí eso?) ¡Gracias!
musiphil
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.