Марк Митчелл - Программирование для Linux. Профессиональный подход

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Программирование для Linux. Профессиональный подход"
Описание и краткое содержание "Программирование для Linux. Профессиональный подход" читать бесплатно онлайн.
Данная книга в основном посвящена программированию в среде GNU/Linux. Авторы применяют обучающий подход, последовательно излагая самые важные концепции и методики использования расширенных возможностей системы GNU/Linux в прикладных программах. Читатели научатся писать программы, к интерфейсу которых привыкли пользователи Linux; освоят такие технологии, как многозадачность, многопотоковое программирование, межзадачное взаимодействие и взаимодействие с аппаратными устройствами; смогут улучшить свои программы, сделав их быстрее, надежнее и безопаснее; поймут особенности системы GNU/Linux, ее ограничения, дополнительные возможности и специфические соглашения.
Книга предназначена для программистов, уже знакомых с языком С и имеющих базовый опыт работы в GNU/Linux.
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К некоторым аппаратным компонентам можно получить доступ сразу через несколько символьных устройств. Чаще всего этим устройствам соответствует разная семантика доступа. Например, если в системе есть ленточное IDE-устройство /dev/ht0, то Linux автоматически перематывает ленту в дисководе, когда программа закрывает дескриптор файла устройства. С помощью ссылки /dev/nht0 можно обратиться к тому же ленточному накопителю, но режим автоматической перемотки в нем будет отключен. Иногда в системе есть ссылки наподобие /dev/cua0. Это старые интерфейсы последовательных портов, таких как /dev/ttyS0.
Иногда требуется записывать данные непосредственно в символьные устройства. Рассмотрим примеры.
■ Терминальная программа напрямую обращается к модему через устройство последовательного порта. Данные, записываемые в устройство, передаются по модему на удаленный компьютер.
■ Программа резервного копирования записывает данные непосредственно на ленту. Такая программа может реализовывать свои собственные алгоритмы сжатия и проверки ошибок.
■ Программа обращается к первому виртуальному терминалу,[19] записывая данные в устройство /dev/tty1.
Терминальным окнам, работающим в графической среде, и окнам сеансов удаленной регистрации назначаются не виртуальные терминалы, а псевдотерминалы (о них говорится в разделе 6.6, "Псевдотерминалы")
■ Иногда программе требуется получить доступ к терминальному устройству, с которым она связана.
Например, программа может попросить пользователя ввести пароль. Из соображений безопасности требуется проигнорировать перенаправление стандартных потоков ввода и вывода и прочитать пароль с терминала независимо от того, как пользователь вызвал программу. Для этого можно открыть файл /dev/tty, всегда соответствующий текущему терминальному устройству процесса. Запишите в данный файл строку приглашения, а затем прочитайте пароль. Это не позволит пользователю передать программе пароль из файла с помощью следующего синтаксиса:
% secure_program < my-password.txt
■ Программа воспроизводит аудиофайл через звуковую плату, посылая аудиоданные в устройство /dev/audio. Эти данные должны быть представлены в формате Sun (такие файлы обычно имеют расширение .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), в KDE — программа aRts (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, например:
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Программирование для Linux. Профессиональный подход"
Книги похожие на "Программирование для Linux. Профессиональный подход" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Марк Митчелл - Программирование для Linux. Профессиональный подход"
Отзывы читателей о книге "Программирование для Linux. Профессиональный подход", комментарии и мнения людей о произведении.