Відповіді:
Ці файли на насправді називається 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щоб сказати програмі прочитати її стандартний вхід.
Подальше читання: