Quel est le descripteur de fichier 3 attribué par défaut?


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

Quel est le descripteur de fichier 3 attribué par défaut?

Réponses:


34

Rien: il existe trois descriptions de fichiers standard, STDIN, STDOUT et STDERR. Ils sont respectivement attribués à 0, 1 et 2.

Ce que vous voyez là est un artefact du ls(1)fonctionnement: pour lire le contenu du /proc/self/fdrépertoire et l'afficher, il doit ouvrir ce répertoire.

Cela signifie qu'il obtient un descripteur de fichier, généralement le premier disponible ... donc, 3.

Si vous deviez exécuter, par exemple, catsur une console distincte et l'inspecter /proc/${pid}/fd, vous constateriez que seuls les trois premiers étaient attribués.


Ah, cela explique le résultat, y compris le fait qu'il 3pointe /proc/32157/fdégalement. (Pourquoi ai-je raté ça?) Merci!
musiphil
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.