% 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
Принтер может требовать, чтобы