Приемы профессиональной работы в UNIX

       

ФАЙЛЫ ТЕРМИНАЛЬНЫХ УСТРОЙСТВ


Физически адресация терминалов производится посредством файлов устройств в каталоге /dev. Когда вы регистрируетесь в системе, вам присваивается определенный номер терминала, например tty01. Этот номер терминала в действительности является файлом /dev/tty01. Если вы вызовете команду tty UNIX, она выведет полное маршрутное имя файла того терминального устройства, за которым вы работаете.

Файлы терминальных устройств выглядят так же, как обычные файлы, за исключением того, что команда "ls -l" показывает, как называются старший и младший номера устройства, которые не являются частью обычных файлов. Старший номер является индексом в таблице cdevsw[], которая содержит адрес драйвера устройства, используемого ядром для данного типа устройства. Младший номер идентифицирует конкретное физическое устройство. Эти номера появляются в последовательном порядке для всех устройств, использующих один и тот же драйвер. Так выглядит типичный список файлов устройств в системе XENIX:

| | crw--w--w- 1 russ tricks 0, 0 Jun 22 02:34 /dev/console | crw--w--w- 1 russ tricks 0, 1 Jun 22 00:41 /dev/tty02 | crw--w--w- 1 root tricks 0, 2 Jun 21 17:56 /dev/tty03 | crw--w--w- 1 root tricks 0, 3 Jun 21 05:47 /dev/tty04 | crw-rw-rw- 1 root root 0, 4 Feb 18 17:09 /dev/tty05 | crw-rw-rw- 1 root root 0, 5 Feb 18 17:09 /dev/tty06 | crw-rw-rw- 2 root root 5, 0 Jun 21 20:23 /dev/tty11 | crw--w--w- 2 root tricks 5, 8 Jun 22 02:20 /dev/tty12 | crw-rw-rw- 2 root root 5,128 Feb 18 17:09 /dev/tty13 | crw-rw-rw- 2 root root 5,136 Feb 18 17:09 /dev/tty14 |

По символу 'c' в первом столбце мы видим, что это символьные устройства, а биты прав доступа показывают, кто имеет доступ к этим файлам. Первый столбец чисел (0 или 5) является старшим номером. Младшие номера в следующем столбце обычно следуют в последовательном порядке, но не всегда (как видно в данном примере).

В дополнение к использованию абсолютного номера вашего терминала, одно из устройств используется в качестве "логического", или "родового" адреса вашего терминала. Оно использует другой драйвер устройства, называется /dev/tty и применяется в случаях, когда стандартный ввод и стандартный вывод переадресовываются в другие файлы, а прикладной программе необходимо читать с клавиатуры или писать на экран. При помощи доступа к файлу /dev/tty образуется связь с самим терминалом. Выбор использования устройства с именем tty вместо устройства tty01 главным образом зависит от того, какая стоит задача. Если вам необходимо иметь независимую от типа терминала программу, используйте /dev/tty.



Содержание раздела