Книга: Программирование для Linux. Профессиональный подход
6.3.2. Доступ к устройству путем открытия файла
6.3.2. Доступ к устройству путем открытия файла
Как работать с аппаратными устройствами? В случае символьного устройства ответ прост: откройте ссылку на устройство как обычный файл и осуществляйте чтение-запись традиционным образом. Например, если к первому параллельному порту подключен принтер, то распечатать файл document.txt
можно, направив его непосредственно на устройство /dev/lp0
:
% 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);
- Что делать, если при установке принтера появляется сообщение Невозможно завершение операции. Подсистема печати недоступн...
- Эффективная работа с временными файлами сортировки
- Единое имя файла параметров InterBase
- Параметры конфигурационного файла InterBase
- 9.4. Права доступа к squid
- 13. Зарабатываем на своих файлах: файлообменники, загружаеми получаем процент за скачивание
- Глава 29 Доступ к канальному уровню
- 10.5. Транзакции и пути доступа меню
- Листинг 15.11. Код для загрузки файла с Web-сервера
- Настройка доступа пользователей к рабочей книге
- 3.5 Проблемы доступа при использовании нескольких протоколов
- Создание и открытие файла