Ответ 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