■ Иногда программе требуется получить доступ к терминальному устройству, с которым она связана.
Например, программа может попросить пользователя ввести пароль. Из соображений безопасности требуется проигнорировать перенаправление стандартных потоков ввода и вывода и прочитать пароль с терминала независимо от того, как пользователь вызвал программу. Для этого можно открыть файл /dev/tty
% secure_program < my-password.txt
■ Программа воспроизводит аудиофайл через звуковую плату, посылая аудиоданные в устройство /dev/audio
.au
).Например, во многие дистрибутивы Linux входит файл /usr/share/sndconfig/sample.au
% cat /usr/share/sndconfig/sample.au > /dev/audio
Те, кто хотят включить звук в свои программы, должны использовать специальные сервисы и библиотеки функций работы со звуком, имеющиеся в Linux. В графической среде Gnome есть демон EsounD (доступен по адресу http://www.tux.org/~riclude/EsounD.html
http://space.twc.de/~stefan/kde/arts-mcop-doc/
). Благодаря этим средствам приложения, обращающиеся к звуковой плате, лучше взаимодействуют друг с другом.6.5. Специальные устройства
В Linux есть также ряд специальных символьных устройств, которым не соответствуют никакие аппаратные компоненты. Старший номер всех таких устройств равен 1. Это означает, что обращение к устройству переадресуется ядру Linux.
6.5.1. /dev/null
Устройство /dev/null
■ Linux удаляет любые данные, направляемые в устройство /dev/null
/dev/null
, например:% verbose_command > /dev/null
■ При чтении из устройства /dev/null
/dev/null
с помощью функции open()
и попытаться прочесть данные из него с помощью функции read()
, функция вернет 0 байтов. При копировании файла /dev/null
в другое место будет создан пустой файл нулевой длины:% cp /dev/null empty-file
% ls -l empty-file
-rw-rw---- 1 samuel samuel 0 Mar 8 00:27 empty-file
6.5.2. /dev/zero
Устройство /dev/zero
Чтобы проверить это, запустите программу hexdump
/dev/zero
в шестнадцатеричном виде:% ./hexdump /dev/zero
0x000000 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x000010 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x000020 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x000030 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
...
Чтобы прервать работу программы, нажмите
Файл /dev/zero
6.5.3. /dev/full
Устройство /dev/full
ENOSPC
, обычно свидетельствующий о том, что устройство записи переполнено.Вот что получится, если попытаться осуществить запись в устройство /dev/full
cp
:% cp /etc/fstab /dev/full
cp: /dev/full: No space left on device
Этот файл удобен для проверки того, как программа будет вести себя в случае, если при записи в файл возникнет нехватка места.
6.5.4. Устройства генерирования случайных чисел