Tags
Language
Tags
April 2024
Su Mo Tu We Th Fr Sa
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 1 2 3 4

У. Ричард Стивенс, Стивен А. Раго "UNIX. Профессиональное программирование" / "Advanced Programming in the UNIX Environment"

Posted By: exLib
У. Ричард Стивенс, Стивен А. Раго "UNIX. Профессиональное программирование" / "Advanced Programming in the UNIX Environment"

У. Ричард Стивенс, Стивен А. Раго "UNIX. Профессиональное программирование"
"Advanced Programming in the UNIX Environment" by W. Richard Stevens, Stephen A. Rago
Символ-Плюс | 2007 | ISBN: 5932860898 9785932860892 | 1033 pages | djvu/PDF | 22/6 MB

Книга представляет собой подробнейшее справочное руководство для любого профессионального программиста, работающего с UNIX. Среди важных дополнений главы, посвященные потокам и разработке многопоточных программ, использованию интерфейса сокетов для организации межпроцессного взаимодействия (IPC), а также широкий охват интерфейсов, добавленных в последней версии POSIX.1.

Аспекты прикладного программного интерфейса разъясняются на простых и понятных примерах, протестированных на 4-х платформах: PreeBSD, Linux, Solaris 9 и Mac OS X 10.3.
Описывается множество ловушек, о которых следует помнить при написании программ для различных реализаций UNIX, и показывается, как их избежать, опираясь на стандарты POSIX.1 и Single UNIX Specification.

Оглавление
Отзывы ко второму и первому изданиям
Вступительное слово
Предисловия ко второму и первому изданиям
1. Обзор операционной системы UNIX
1.1. Введение
1.2. Архитектура UNIX
1.3. Вход в систему
1.4. Файлы и каталоги
1.5. Ввод и вывод
1.6. Программы и процессы
1.7. Обработка ошибок
1.8. Идентификация пользователя
1.9. Сигналы
1.10. Представление времени
1.11. Системные вызовы и библиотечные функции
1.12. Подведение итогов
2. Стандарты и реализации UNIX
2.1. Введение
2.2. Стандартизация UNIX
2.3. Реализации UNIX
2.3.1. UNIX System V Release 4
2.3.2. 4.4BSD
2.3.3. FreeBSD
2.3.4. Linux
2.3.5. Mac OS X
2.3.6. Solaris
2.3.7. Прочие версии UNIX
2.4. Связь между стандартами и реализациями
2.5. Пределы
2.5.1. Пределы ISO С
2.5.2. Пределы POSIX
2.5.3. Пределы XSI
2.5.4. Функции sysconf, pathconf и fpathconf
2.5.5. Неопределенные пределы времени выполнения
2.6. Необязательные параметры
2.7. Макроопределения контроля функциональных особенностей
2.8. Элементарные системные типы данных
2.9. Конфликты между стандартами
2.10. Подведение итогов
3. Файловый ввод-вывод
3.1. Введение
3.2. Дескрипторы файлов
3.3. Функция open
3.4. Функция creat
3.5. Функция close
3.6. Функция lseek
3.7. Функция read
3.8. Функция write
3.9. Эффективность операций ввода-вывода
3.10. Совместное использование файлов
3.11. Атомарные операции
3.12. Функции dup и dup2
3.13. Функции sync, fsync и fdatasync
3.14. Функция fcntl
3.15. Функция ioctl
3.16. /dev/fd
3.17. Подведение итогов
4. Файлы и каталоги
4.1. Введение
4.2. Функции stat, fstat и lstat
4.3. Типы файлов
4.4. set-user-ID и set-group-ID
4.5. Права доступа к файлу
4.6. Принадлежность новых файлов и каталогов
4.7. Функция access
4.8. Функция umask
4.9. Функции chmod и fchmod
4.10. Бит sticky
4.11. Функции chown, fchown и lchown
4.13. Усечение файлов
4.14. Файловые системы
4.15. Функции link, unlink, remove и rename
4.16. Символические ссылки
4.17. Функции symlink и readlink
4.18. Временные характеристики файлов
4.19. Функция utime
4.20. Функции mkdir и rmdir
4.21. Чтение каталогов
4.22. Функции chdir, fchdir и getcwd
4.23. Специальные файлы устройств
4.24. Коротко о битах прав доступа к файлам
4.25. Подведение итогов
5. Стандартная библиотека ввода-вывода
5.1. Введение
5.2. Потоки и объекты FILE
5.3. Стандартные потоки ввода, вывода и сообщений об ошибках 183
5.4. Буферизация
5.5. Открытие потока
5.6. Чтение из потока и запись в поток
5.7. Построчный ввод-вывод
5.8. Эффективность стандартных функций ввода-вывода
5.9. Ввод-вывод двоичных данных
5.10. Позиционирование в потоке
5.11. Форматированный ввод-вывод
5.12. Подробности реализации
5.13. Временные файлы
5.14. Альтернативы стандартной библиотеке ввода-вывода
5.15. Подведение итогов
6. Информация о системе и файлы данных
6.1. Введение
6.2. Файл паролей
6.3. Теневые пароли
6.4. Файл групп
6.5. Идентификаторы дополнительных групп
6.6. Различия реализаций
6.7. Прочие файлы данных
6.8. Учет входов в систему
6.9. Информация о системе
6.10. Функции даты и времени
6.11. Подведение итогов
7. Среда окружения процесса
7.1. Введение
7.2. Функция main
7.3. Завершение работы процесса
7.4. Аргументы командной строки
7.5. Список переменных окружения
7.6. Раскладка памяти программы на языке С
7.7. Разделяемые библиотеки
7.8. Распределение памяти
7.9. Переменные окружения
7.10. Функции setjump и longjump
7.11. Функции getrlimit и setrlimit
7.12. Подведение итогов
8. Управление процессами
8.1. Введение
8.2. Идентификаторы процесса
8.3. Функция fork
8.4. Функция vfork
8.5. Функция exit
8.6. Функции wait и waitpid
8.7. Функция waitid
8.8. Функции wait3 и wait4
8.9. Гонка за ресурсами
8.10. Функция ехес
8.11. Изменение идентификаторов пользователя и группы
8.12. Интерпретируемые файлы
8.13. Функция system
8.14. Учет использования ресурсов процессами
8.15. Идентификация пользователя
8.16. Временные характеристики процесса
8.17. Подведение итогов
9. Взаимоотношения между процессами
9.1. Введение
9.2. Вход с терминала
9.3. Вход в систему через сетевое соединение
9.4. Группы процессов
9.5. Сессии
9.6. Управляющий терминал
9.7. Функции tcgetpgrp, tcsetpgrp и tcgetsid
9.8. Управление заданиями
9.9. Выполнение программ командной оболочкой
9.10. Осиротевшие группы процессов
9.11. Реализация в FreeBSD
9.12. Подведение итогов
10. Сигналы
10.1. Введение
10.2. Концепция сигналов
10.3. Функция signal
10.4. Ненадежные сигналы
10.5. Прерванные системные вызовы
10.6. Реентерабельные функции
10.7. Семантика сигнала SIGCLD
10.8. Надежные сигналы. Терминология и семантика
10.9. Функции kill и raise
10.10. Функции alarm и pause
10.11. Наборы сигналов
10.12. Функция sigprocmask
10.13. Функция sigpending
10.14. Функция sigaction
10.15. Функции sigsetjmp у siglongjmp
10.16. Функция sigsuspend
10.17. Функция abort
10.18. Функция system
10.19. Функция sleep
10.20. Сигналы управления заданиями
10.21. Дополнительные возможности
10.22. Подведение итогов
11. Потоки
11.1. Введение
11.2. Концепция потоков
11.3. Идентификация потоков
11.4. Создание потока
11.5. Завершение потока
11.6. Синхронизация потоков
11.7. Подведение итогов
12. Управление потоками
12.1. Введение
12.2. Пределы для потоков
12.4. Атрибуты синхронизации
12.5. Реентерабельность
12.6. Локальные данные потоков
12.7. Принудительное завершение потоков
12.8. Потоки и сигналы
12.9. Потоки и fork
12.10. Потоки и операции ввода-вывода
12.11. Подведение итогов
13. Процессы-демоны
13.1. Введение
13.2. Характеристики демонов
13.3. Правила программирования демонов
13.4. Журналирование ошибок
13.5. Демоны в единственном экземпляре
13.6. Соглашения для демонов
13.7. Модель клиент-сервер
13.8. Подведение итогов
14. Расширенные операции ввода-вывода
14.1. Введение
14.2. Неблокирующий ввод-вывод
14.3. Блокировка записей
14.4. STREAMS
14.5. Мультиплексирование ввода-вывода
14.6. Асинхронный ввод-вывод
14.7. Функции readv и writev
14.8. Функции readn и writen
14.9. Операции ввода-вывода с отображаемой памятью
14.10. Подведение итогов
15. Межпроцессное взаимодействие
15.1. Введение
15.2. Неименованные каналы
15.3. Функции рореп и pclose
15.4. Сопроцессы
15.5. FIFO
15.6. XSI IPC
15.8. Семафоры
15.9. Разделяемая память
15.10. Свойства взаимодействий типа клиент-сервер
15.11. Подведение итогов
16. Межпроцессное взаимодействие в сети: сокеты
16.1. Введение
16.2. Дескрипторы сокетов
16.3. Адресация
16.4. Установление соединения
16.5. Передача данных
16.6. Параметры сокетов
16.7. Экстренные данные
16.8. Неблокирующий и асинхронный ввод-вывод
16.9. Подведение итогов
17. Расширенные возможности IPC
17.1. Введение
17.2. Каналы на основе STREAMS
17.3. Сокеты домена UNIX
17.4. Передача дескрипторов файлов
17.5. Сервер открытия файлов, версия 1
17.6. Сервер открытия файлов, версия 2
17.7. Подведение итогов
18. Терминальный ввод-вывод
18.1. Введение
18.2. Обзор
18.3. Специальные символы ввода
18.4. Получение и изменение характеристик терминала
18.5. Флаги режимов терминала
18.6. Команда stty
18.7. Функции для работы со скоростью передачи
18.8. Функции управления линией связи
18.9. Идентификация терминала
18.10. Канонический режим
18.11. Неканонический режим
18.12. Размер окна терминала
18.13. termcap, terminfo и curses
18.14. Подведение итогов
19. Псевдотерминалы
19.1. Введение
19.2. Обзор
19.3. Открытие устройств псевдотерминалов
19.3.1. Псевдотерминалы на основе STREAMS
19.3.2. Псевдотерминалы в BSD
19.3.3. Псевдотерминалы в Linux
19.4. Функция pty_fork
19.5. Программа pty
19.6. Использование программы pty
19.7. Дополнительные возможности
19.8. Подведение итогов
20. Библиотека базы данных
20.1. Введение
20.2. Предыстория
20.3. Библиотека
20.4. Обзор реализации
20.5. Централизация или децентрализация?
20.6. Одновременный доступ
20.7. Сборка библиотеки
20.8. Исходный код
20.9. Производительность
20.10. Подведение итогов
21. Взаимодействие с сетевым принтером
21.1. Введение
21.2. Протокол печати через Интернет
21.3. Протокол передачи гипертекста
21.4. Очередь печати
21.5. Исходный код
21.6. Подведение итогов
A. Прототипы функций
B. Различные исходные тексты
C. Варианты решения некоторых упражнений
Список литературы
Алфавитный указатель
with TOC BookMarkLinks


PDF: FSonic • | • CrockoTec • | • DepositF


djvu: FSonic • | • CrockoTec • | • DepositF