- •Введение
- •Глава 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
Список литературы
Рочкинд, М. Программирование для Unix / М. Рочкинд. – М.: СПб: БХВ-Петербург, 2005. – 704 с.
Глас Г., Эйблс К. Unix для программистов и пользователей. / Г. Глас, К. Эйблс – СПб.: БХВ-Петербург, 2004. – 848 с.: ил.
Брюс М. Unix/Linux: Теория и практика программирования. / М.Брюс - Издательство "Кудиц-Образ", 2004. -576 с.
Собель М.Г. Linux. Администрирование и системное программирование. / М.Г. Собель. - Издательство: Питер, 2011. – 880 с.
Кофлер М. Linux. Полное руководство. / М. Кофлер. Издательство: Питер, 2011. – 800
Роббинс А. Linux. Программирование в примерах. / А. Роббинс. - Издательство: КУДИЦ-Пресс, 2008. – 656 с.
Роберт Лав. Разработка ядра Linux. / Лав Роберт. - Издательство: Вильямс, 2008. – 448 с.
Стивенс У.Р. UNIX. Профессиональное программирование. / У.Р. Стивенс. – Издательство: Символ-Плюс, 2007. - 1040 с.
Вейрле К. Linux: сетевая архитектура. Структура и реализация сетевых протоколов в ядре. / К. Вейрле. – Издательство: Кудиц-Образ, 2006. -656 с.
Иванов Н. Программирование в Linux. Самоучитель. / Н. Иванов. - Издательство: БХВ-Петербург, 2012. – 400 с.
Краткий словарь ФУНКЦИЙ (глоссарий)
abort – посылает сигнал SIGABRT
accept – принимает новое соединение и создает новый сокет
alarm – планирует выдачу сигнала
bind – присваивает адрес сокету
chdir – делает заданный каталог текущим
chmod – изменяет режимы доступа по имени файла
chroot – изменяет корневой каталог
clock – возвращает время выполнения
clock _gettime – возвращает время из заданных часов
clock _settime – устанавливает часы
close – закрывает дескриптор файла
closedir – закрывает каталог
connect – устанавливает соединение
creat – создает новый или очищает существующий файл и открывает его на запись
dup – дублирует дескриптор файла
execl – запускает программу, входные аргументы передаются в виде списка
execv – запускает программу, входные аргументы передаются в виде массива
exit – завершает процесс с обращением к коду сборки мусора
fchmod – изменяет режимы доступа по дескриптору файла
fork - создает новый процесс
fstat – возвращает сведения о файле по дескриптору
geteuid – возвращает действующий идентификатор пользователя
getgid – возвращает реальный идентификатор группы
getpid – возвращает идентификатор процесса
getppid – возвращает идентификатор родительского процесса
getuid – возвращает реальный идентификатор пользователя
kill – посылает сигнал процессу
link - создает жесткую ссылку
lseek - устанавливает и возвращает текущую позицию в файле
mkdir – создает каталог
mkfifo – создает именованный канал
mknod – создает файл
mount – монтирует файловую систему
mq_open – открывает очередь сообщений
mq_receive – извлекает сообщение из очереди
mq_send – помещает сообщение в очередь
open – открывает или создает файл
opendir – открывает каталог
pause – ожидает доставки сигнала
pipe – создает канал
pread - выполняет чтение из файла, начиная с заданной позиции
read – выполняет чтение из файлового дескриптора
rmdir – удаляет каталог
select – ожидает готовности ввода-вывода
sem_open – открывает именованный семафор
send – передает данные в сокет
system – запускает команду
time – возвращает текущие дату и время
umask – устанавливает и возвращает маску прав доступа для вновь создаваемых файлов
unlink – удаляет запись в каталоге
vfork – создает новый процесс с разделением памяти
wait – ожидает завершения дочернего процесса
waitpid – ожидает изменения состояния дочернего процесса
write – выполняет запись в файловый дескриптор
ВВЕДЕНИЕ 3
1.1. Файлы 4
1.2. Программы, процессы и потоки 5
1.3. Сигналы 6
1.4. Идентификаторы процессов, группы процессов и сеансы 6
1.5. Система прав 7
1.6. Другие атрибуты процесса 9
1.7. Межпроцессное взаимодействие 9
1.8. Использование системных вызовов 11
1.9. Краткие описания функций и обработка ошибок 12