Відповіді:
Ці файли на насправді називається stdin
, stdout
і stderr
. @
Символ додається , ls
щоб сказати вам , що вони символічні посилання . ls -l
показав би , що цілі цих символічних посилань є /proc/self/fd/0
, /proc/self/fd/1
і /proc/self/fd/2
.
/proc
це віртуальна файлова система, що надається ядром, яка показує інформацію про операційну систему. Крім усього іншого, є такі каталоги, /proc/1234
які містять інформацію про процес з ідентифікатором 1234. /proc/self
Це символічне посилання на каталог для будь-якого процесу, який отримує доступ до нього (ядро повертає іншу ціль у різні процеси).
/proc/self/fd
(який також є посиланням на /dev/fd
) містить один запис на файл, який відкрив процес. Кожен запис відповідає дескриптору файлу і є символічним посиланням на файл (якщо можливо - для труб, розеток та видалених файлів, символічне посилання дає інформацію, яка корисна для налагодження, але не вказує на файл, який можна було б відкрити за назвою) . Ці файлові дескриптори ті ж , що ви маніпулюєте з функціями C , таких як open
, close
, dup
, read
, write
і т.д. Вони не використовуються функції С, вони інші способи взаємодії з тими ж об'єктами.
Причина /dev/stdin
та друзі існують у тому, що інколи програма вимагає імені файлу, але ви хочете сказати йому, щоб він уже відкрив файл (наприклад, труба). Тож ви можете перейти, /dev/stdin
щоб сказати програмі прочитати її стандартний вхід.
Подальше читання: