Программирование для Linux. Профессиональный подход
Шрифт:
Иногда требуется записывать данные непосредственно в символьные устройства. Рассмотрим примеры.
■ Терминальная программа напрямую обращается к модему через устройство последовательного порта. Данные, записываемые в устройство, передаются по модему на удаленный компьютер.
■ Программа резервного копирования записывает данные непосредственно на ленту. Такая программа может реализовывать свои собственные алгоритмы сжатия и проверки ошибок.
■ Программа обращается к первому виртуальному терминалу, [19] записывая данные в устройство
19
В
Терминальным окнам, работающим в графической среде, и окнам сеансов удаленной регистрации назначаются не виртуальные терминалы, а псевдотерминалы (о них говорится в разделе 6.6, "Псевдотерминалы")
■ Иногда программе требуется получить доступ к терминальному устройству, с которым она связана.
Например, программа может попросить пользователя ввести пароль. Из соображений безопасности требуется проигнорировать перенаправление стандартных потоков ввода и вывода и прочитать пароль с терминала независимо от того, как пользователь вызвал программу. Для этого можно открыть файл
■ Программа воспроизводит аудиофайл через звуковую плату, посылая аудиоданные в устройство
Например, во многие дистрибутивы Linux входит файл
Те, кто хотят включить звук в свои программы, должны использовать специальные сервисы и библиотеки функций работы со звуком, имеющиеся в Linux. В графической среде Gnome есть демон EsounD (доступен по адресу
6.5. Специальные устройства
В Linux есть также ряд специальных символьных устройств, которым не соответствуют никакие аппаратные компоненты. Старший номер всех таких устройств равен 1. Это означает, что обращение к устройству переадресуется ядру Linux.
6.5.1. /dev/null
Устройство
■ Linux удаляет любые данные, направляемые в устройство
■ При чтении из устройства
6.5.2. /dev/zero
Устройство
Чтобы проверить это, запустите программу
Чтобы прервать работу программы, нажмите <Ctrl+C>.
Файл
6.5.3. /dev/full
Устройство
Вот что получится, если попытаться осуществить запись в устройство
Этот файл удобен для проверки того, как программа будет вести себя в случае, если при записи в файл возникнет нехватка места.
6.5.4. Устройства генерирования случайных чисел
Специальные устройства
Большинство аналогичных программных функций, например функция
Чтобы получить настоящие случайные числа, необходим внешний "источник хаоса". Ядро Linux знает о таком источнике: это вы сами! Замеряя задержки между действиями пользователя, в частности нажатиями клавиш и перемещениями мыши, ядро способно генерировать непредсказуемый поток действительно случайных чисел. Получить доступ к этому потопу можно путем чтения из устройств
Разница между устройствами проявляется, когда запас случайных чисел в ядре Linux заканчивается. Если попытаться прочесть большое количество байтов из устройства
Тайны исчезнувших цивилизаций
Все загадки Земли
Научно-образовательная:
история
культурология
рейтинг книги
Я не царь. Книга XXIV
24. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Судьба
Проза:
историческая проза
советская классическая проза
рейтинг книги
Последний Паладин. Том 9
9. Путь Паладина
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Предсказание
Фантастика:
фэнтези
рейтинг книги
Игра киллера
Детективы:
боевики
рейтинг книги
Война. Krieg. 1941—1945. Произведения русских и немецких писателей
Проза:
военная проза
рейтинг книги
Ловец мудрости
Фантастика:
фэнтези
рейтинг книги
Дауншифтер
Фантастика:
боевая фантастика
рейтинг книги
Вечный. Книга III
3. Вечный
Фантастика:
фэнтези
попаданцы
рпг
рейтинг книги
Арестант
7. Бандитский Петербург
Детективы:
боевики
рейтинг книги
Барону наплевать на правила
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
рейтинг книги
Последний Паладин. Том 4
4. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Молния
1. Молния
Любовные романы:
исторические любовные романы
рейтинг книги