- •Введение
- •Глава 1. Фундаментальные концепции unix Систем
- •Программы, процессы и потоки
- •Сигналы
- •Идентификаторы процессов, группы процессов и сеансы
- •Система прав
- •Другие атрибуты процесса
- •Межпроцессное взаимодействие
- •Использование системных вызовов
- •Краткие описания функций и обработка ошибок
- •Контрольные вопросы
- •Литература
- •Глава 2. Базовые операции ввода-вывода
- •Файловые операции ввода - вывода
- •Стандартные дескрипторы
- •Системные вызовы open и creat
- •Системный вызов umask
- •Системный вызов unlink
- •Текущая позиция в файле
- •Системный вызов write
- •2.8. Системный вызов read
- •2.9. Системный вызов close
- •2.10. Системный вызов lseek
- •2.11. Системные вызовы pread и pwrite
- •2.12. Системные вызовы truncate и ftruncate
- •Контрольные вопросы
- •Литература
- •Глава 3. Дополнительные операции файлового ввода_вывода
- •Низкоуровневый доступ к файловой системе
- •Жесткие и символические ссылки
- •Системный вызов getcwd
- •Отображение метаданных файла
- •Системные вызовы getpwuid, getgrgid и getlogin
- •Каталоги
- •Системные вызовы chdir и fchdir
- •Системные вызовы mkdir и rmdir
- •Контрольные вопросы
- •Литература
- •Глава 4. Процессы и потоки
- •4.1. Среда окружения
- •Системный вызов exec
- •Системный вызов fork
- •Завершение процесса и системные вызовы exit
- •Системные вызовы wait, waitpid и waitid
- •Получение и изменение идентификаторов пользователя и группы
- •Получение и изменение приоритета
- •Контрольные вопросы
- •Литература
- •Глава 5. Механизмы межпроцессного взаимодействия
- •5.1. Каналы
- •5.2. Системные вызовы dup и dup2
- •5.3. Двунаправленное взаимодействие с использованием однонаправленных каналов
- •Контрольные вопросы
- •Литература
- •Глава 6.Механизмы взаимодействия процессов
- •Именованные каналы (fifo)
- •Системные вызовы для работы с очередями сообщений posix
- •Семафоры
- •Системные вызовы для работы с общей памятью posix
- •Контрольные вопросы
- •Литература
- •Глава 7.Сетевое взаимодействие и сокеты
- •Основные системные вызовы для работы с сокетами, образующими логические соединения
- •Обслуживание нескольких клиентов
- •Адресация сокетов
- •In_port_t sin_port; /* номер порта (uint16_t) */
- •In_addr_t s_addr; /* адрес iPv4 (uint32_t) */
- •Домен адресов af_inet6
- •In_port_t sin6_port; /* номер порта (uint16_t) */
- •Доменная система именования
- •Параметры сокетов
- •Контрольные вопросы
- •Литература
- •Глава 8.Сигналы и таймеры
- •Введение в сигналы
- •Жизненный цикл сигналов
- •Типы сигналов
- •Системный вызов sigaction
- •Контрольные вопросы
- •Литература
- •Заключение
- •Список литературы
- •Глава 2. Базовые операции ввода-вывода 14
- •Глава 3. Дополнительные операции файлового ввода_вывода 25
- •Глава 6. Механизмы взаимодействия процессов 58
Глава 2. Базовые операции ввода-вывода 14
2.1. Файловые операции ввода - вывода 14
2.2. Стандартные дескрипторы 15
2.3. Системные вызовы open и creat 16
2.4. Системный вызов umask 18
2.5. Системный вызов unlink 19
2.6. Текущая позиция в файле 19
2.7. Системный вызов write 20
2.8. Системный вызов read 21
2.9. Системный вызов close 21
2.10. Системный вызов lseek 22
2.11. Системные вызовы pread и pwrite 22
2.12. Системные вызовы truncate и ftruncate 23
Глава 3. Дополнительные операции файлового ввода_вывода 25
3.1. Низкоуровневый доступ к файловой системе 25
3.2. Жесткие и символические ссылки 27
3.3. Системный вызов getcwd 27
3.4. Отображение метаданных файла 28
3.5. Системные вызовы getpwuid, getgrgid и getlogin 29
3.6. Каталоги 30
3.6.1. Системные вызовы chdir и fchdir 32
3.6.2. Системные вызовы mkdir и rmdir 32
4.1. Среда окружения 36
4.2. Системный вызов exec 37
4.3. Системный вызов fork 40
4.4. Завершение процесса и системные вызовы exit 41
4.5. Системные вызовы wait, waitpid и waitid 42
4.6. Получение и изменение идентификаторов пользователя и группы 44
4.7. Получение и изменение приоритета 46
5.1. Каналы 47
5.2. Системные вызовы dup и dup2 52
5.3. Двунаправленное взаимодействие с использованием однонаправленных каналов 54
Глава 6. Механизмы взаимодействия процессов 58
6.1. Именованные каналы (FIFO) 58
6.2. Системные вызовы для работы с очередями сообщений POSIX 59
6.3. Семафоры 62
6.4. Системные вызовы для работы с общей памятью POSIX 63
ГЛАВА 7. СЕТЕВОЕ ВЗАИМОДЕЙСТВИЕ И СОКЕТЫ 66
7.1. Сокеты 66
7.2. Основные системные вызовы для работы с сокетами, образующими логические соединения 68
7.3. Обслуживание нескольких клиентов 69
7.4. Адресация сокетов 72
7.5. Домен адресов AF_INET6 74
7.6. Доменная система именования 75
7.7. Параметры сокетов 75
ГЛАВА 8. СИГНАЛЫ И ТАЙМЕРЫ 77
8.1. Введение в сигналы 77
8.2. Жизненный цикл сигналов 78
8.3. Типы сигналов 79
8.4. Системный вызов sigaction 80
ЗАКЛЮЧЕНИЕ 88
Учебное издание
Осипов Александр Леонидович
СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ
Учебное пособие
Редактор
Оператор компьютерной верстки
Подписано в печать Формат
Гарнитура Times New Roman Cyr. Усл.п.л,
Тираж экз.
Новосибирский государственный университет экономики и управления
630099, г. Новосибирск, ул. Каменская, 56
Отпечатано: