Подтвердить что ты не робот

Что особенного в/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?

4b9b3361

Ответ 1

"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

Ответ 2

/dev/tty является синонимом управляющего терминала (если есть) текущего процесса. Как говорит jtl999, это специальный файл персонажа; что означает c в ls -l.

man 4 tty или man -s 4 tty должен предоставить вам больше информации, или вы можете прочитать справочную страницу здесь.

Кстати, pwd >/dev/tty не обязательно выводит на печать файл stdout (хотя это стандартный вывод команды pwd). Если стандартный вывод оболочки был перенаправлен на нечто иное, чем терминал, /dev/tty все еще ссылается на терминал.

Вы также можете прочитать /dev/tty, который обычно читается с клавиатуры.

Ответ 3

"c" означает специальный файл символа.