Який дескриптор файлів 3 призначений за замовчуванням?


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

Який дескриптор файлів 3 призначений за замовчуванням?

Відповіді:


34

Нічого: є три стандартні описи файлів: STDIN, STDOUT та STDERR. Їх призначають відповідно 0, 1 та 2.

Що ви там бачите, це артефакт способу ls(1)роботи: для того, щоб прочитати вміст /proc/self/fdкаталогу та відобразити його, йому потрібно відкрити цей каталог.

Це означає, що він отримує обробку файлів, як правило, першу доступну ... таким чином, 3.

Якщо ви бігали, скажімо, catна окрему консоль і перевіряли /proc/${pid}/fdїї, ви виявили, що були призначені лише перші три.


Так, це пояснює результат, включаючи той факт, на який 3вказується /proc/32157/fdтакож. (Чому я це пропустив?) Дякую!
musiphil
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.