Выбрать главу

% cat document.txt > /dev/lp0

Чтобы эта команда завершилась успешно, необходимо иметь право записи в файл принтера. Во многих Linux-системах таким правом обладают лишь пользователь root и системный демон печати (lpd). Кроме того, результат работы принтера зависит от того, как он интерпретирует посылаемые ему данные. Одни принтеры распечатывают текстовые файлы,[18] другие — нет. PostScript-принтеры распечатывают файлы формата PostScript.

Послать устройству данные из программы несложно. В приведенном ниже фрагменте программы с помощью низкоуровневых функций ввода-вывода содержимое буфера направляется в устройство /dev/lp0:

int fd = open("/dev/lp0", O_WRONLY);

write(fd, buffer, bufffer_length);

close(fd);

6.4. Аппаратные устройства

В табл. 6.1 перечислены распространенные блочные устройства. "Родственные" устройства именуются схожим образом (например, второй раздел первого SCSI-диска называется /dev/sda2). Эта информация будет полезна при анализе файла /proc/mounts на предмет того, какие файловые системы смонтированы в настоящий момент (об этом рассказывается в разделе 7.5, "Дисководы, точки монтирования и файловые системы").

Таблица 6.1. Распространенные блочные устройства

Устройство Имя Старший номер Младший номер
Первый дисковод гибких дисков /dev/fd0 2 0
Второй дисковод гибких дисков /dev/fd1 2 1
Основной IDE-контроллер, главное устройство /dev/hda 3 0
Основной IDE-контроллер, главное устройство, первый раздел /dev/hda1 3 1
Основной IDE-контроллер, подчиненное устройство /dev/hdb 3 64
Основной IDE-контроллер, подчиненное устройство, первый раздел /dev/hdb1 3 65
Дополнительный IDE-контроллер, главное устройство /dev/hdc 22 0
Дополнительный IDE-контроллер, подчиненное устройство /dev/hdd 22 64
Первый SCSI-диск /dev/sda 8 0
Первый SCSI-диск, первый раздел /dev/sda1 8 1
Второй SCSI диск /dev/sdb 8 16
Второй SCSI-диск, первый раздел /dev/sdb1 8 17
Первый SCSI-дисковод CD-ROM /dev/scd0 11 0
Второй SCSI-дисковод CD-ROM /dev/scd1 11 1

В табл. 6.2 перечислены распространенные символьные устройства.

Таблица 6.2. Распространенные символьные устройства

Устройство Имя Старший номер Младший номер
Параллельный порт 0 /dev/lp0 или /dev/par0 6 0
Параллельный порт 1 /dev/lp1 или /dev/par1 6 1
Первый последовательный порт /dev/ttyS0 4 64
Второй последовательный порт /dev/ttyS1 4 65
IDE-накопитель на магнитной ленте /dev/ht0 37 0
Первый SCSI-накопитель на магнитной ленте /dev/st0 9 0
Второй SCSI-накопитель на магнитной ленте /dev/st1 9 1
Системная консоль /dev/console 5 1
Первый виртуальный терминал /dev/tty1 4 1
Второй виртуальный терминал /dev/tty2 4 2
Текущее терминальное устройство процесса /dev/tty 5 0
Звуковая плата /dev/audio 14 4
вернуться

18

Принтер может требовать, чтобы в конце каждой строки стоял символ возврата каретки (ASCII-код 14), а в конце каждой страницы — символ подачи листа (ASCII-код 12).