ls -la /dev/tty
показывает результат:
crw-rw-rw- 1 root tty 5, 0 Dec 14 22:21 /dev/tty
Что означает c в начале? Когда я делаю что-то вроде pwd > /dev/tty
, он печатает на stdout. Что содержит файл/dev/tty?
ls -la /dev/tty
показывает результат:
crw-rw-rw- 1 root tty 5, 0 Dec 14 22:21 /dev/tty
Что означает c в начале? Когда я делаю что-то вроде pwd > /dev/tty
, он печатает на stdout. Что содержит файл/dev/tty?
"C" означает, что это устройство символов. tty - специальный файл, представляющий "управляющий терминал" для текущего процесса.
Устройства персонажа
Unix поддерживает "файлы устройств", которые вообще не являются файлами, но файловыми точками доступа к аппаратным устройствам. "Символьным" устройством является устройство, которое побайтовое (в отличие от буферизованного ввода-вывода).
TTY
/dev/tty - это специальный файл, представляющий терминал для текущего процесса. Итак, когда вы echo 1 >/dev/tty
, ваше сообщение ('1') появится на вашем экране. Аналогично, когда вы cat/dev/tty
, ваш последующий ввод дублируется (пока вы не нажмете Ctrl-C).
/dev/tty
не "содержит" что-либо как таковое, но вы можете прочитать его и написать ему (для чего это стоит). Я не могу придумать для этого хорошее применение, но есть похожие файлы, которые очень полезны для простых операций ввода-вывода (например, /dev/ttyS0
обычно является вашим последовательным портом)
Эта цитата из http://tldp.org/HOWTO/Text-Terminal-HOWTO-7.html#ss7.3:
/dev/tty означает управляющий терминал (если есть) для текущего процесса. Чтобы узнать, какие tty привязаны к тому, какие процессы используют команду ps (CN00) в командной строке (командной строки). Посмотрите на столбец "tty". Для процесса оболочки, в котором вы находитесь, /dev/tty - это терминал, который вы сейчас используете. Введите "tty" в командной строке, чтобы узнать, что это (см. Руководство pg. Tty (1))./dev/tty - это что-то вроде ссылки на фактическое имя терминального устройства с некоторыми дополнительными функциями для C-программистов: см. справочную страницу tty (4).
Вот страница man: http://linux.die.net/man/4/tty
/dev/tty
является синонимом управляющего терминала (если есть) текущего процесса. Как говорит jtl999, это специальный файл персонажа; что означает c
в ls -l
.
man 4 tty
или man -s 4 tty
должен предоставить вам больше информации, или вы можете прочитать справочную страницу здесь.
Кстати, pwd >/dev/tty
не обязательно выводит на печать файл stdout (хотя это стандартный вывод команды pwd
). Если стандартный вывод оболочки был перенаправлен на нечто иное, чем терминал, /dev/tty
все еще ссылается на терминал.
Вы также можете прочитать /dev/tty
, который обычно читается с клавиатуры.
"c" означает специальный файл символа.