Руководство программиста для Linux

Sven Goldt и Matt Welsh

Содержание.

1. Операционная система LINUX 2 2. Ядро LINUX 3 3. Библиотека libc 3 4. Системные вызовы 4 5. ioсtl 5 6. Межпроцессовые коммуникации LINUX 6 6.1. Введение 6 6.2. Полудуплексные каналы UNIX 6 6.2.1. Основные понятия 6 6.2.2. Создание каналов на Си 8 2. Ядро LINUX 10 6.2.3. Каналы - легкий путь! 15 6.2.4. Атомарные (неделимые) операции с каналами 20 6.2.5. Примечания к полудуплексным каналам 20 6.3. Именованные каналы (FIFOs - First In First Out) 21 6.3.1. Основные понятия 21 6.3.2. Создание FIFO 21 6.3.3. Операции FIFO 23 6.3.4. Действие блокирования над FIFO 25 6.3.5. Неизвестный SIGPIPE 25 6.4 System V IPC 26 6.4.1. Базовые понятия 26 6.4.2. Очереди сообщений 29 6.4.3. Семафоры 49 6.4.4. Разделяемая память 72 7. Программирование звука 82 7.1. Программирование встроенного динамика 82 7.2. Программирование звуковой карты 83 8. Символьная графика 84 8.1. Функции ввода/вывода в libc 86 8.1.1. Форматированный вывод 86 8.1.2. Форматированный ввод 88 8.2. Библиотека termcap 89 8.2.1. Введение 89 8.2.2. Поиск описания терминала 91 8.2.3. Описание терминала 92 8.2.4. Свойства termcap 93 8.3. Введение в ncurses 101 8.4. Инициализация 104 8.5. Окна 105 8.6. Вывод 109 8.6.1. Форматированный вывод 110 8.6.2. Вставка символов и линий 111 8.6.3. Удаление символов и линий 112 8.6.4. Боксы и линии 112 8.6.5. Фоновый (background) символ 113 8.7. Ввод 114 8.7.1. Форматированный ввод 116 8.8. Опции 116 8.8.1. Опции ввода 118 8.8.2. Атрибуты терминала 119 8.8.3. Использование опций 120 8.9. Очистка окна и линий 123 8.10. Обновление терминала 124 8.11. Видеоатрибуты и цвет 127 8.12. Координаты курсора и окна 131 8.13. Прокрутка 132 8.14. Заполнители 134 8.15. Мягкие метки (Soft-labels) 134 8.16. Разное 135 8.17. Низкоуровневый доступ 136 8.18. Дамп экрана 136 8.19. Эмуляция termcap 137 8.20. Функции terminfo 137 8.21. Функции отладки 138 8.22. Свойства (capabilities) terminfo 138 8.22.1. Логические свойства 138 8.22.2. Числа 140 8.22.3. Строки 142 9. Программирование портов ввода/вывода 166 9.1. Программирование мыши 168 9.2. Программирование модема 169 9.3. Программирование принтера 169 9.4. Программирование джойстика 170 10. Перенос прикладных программ в Linux 170 10.1. Введение 170 10.2. Обработка сигналов 171 10.2.1. Сигналы в SVR4, BSD и POSIX.1 172 10.2.2. Опции сигналов Linux 172 10.2.3. signal под Linux-ом 173 10.2.4. Сигналы, поддерживаемые Linux-ом 174 10.3. Ввод/вывод с терминала 174 10.4. Управление процессами 175 10.4.1. Подпрограммы kvm 176 10.4.2. ptrace и файловая система /proc 176 10.4.3. Управление процессами под Linux 176 10.5. Переносимая условная компиляция 178 10.6. Дополнительные комментарии 179 11. Справочник системных вызовов 180 12. Аббревиатуры 187