(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Проекты | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация (English)

Системное программирование, cигналы

Все программы должны соответствовать принятому стилю кодирования.

Все возвращаемые функциями значения должны проверяться. В случае ошибок выполнение программы должно аварийно завершаться с выдачей сообщения об ошибке и кодом завершения EXIT_FAILURE.

10. Сигналы

  1. С использованием функции sigaction() назначить обработчик сигнала SIGCHLD. В обработчике вызывать для завершившихся процессов функцию из семейства wait(). Проверить корректность работы получившейся программы.
  2. С помощью функции sigprocmask() заблокировать получение сигнала SIGUSR1, после чего восстановить исходную маску сигналов процесса. Проверить корректность работы получившейся программы. См. стр. 396.
  3. Задача 10.6 из учебника. Напишите программу, с помощью которой можно было бы проверить функции синхронизации родительского и дочернего процессов из листинга 10.17. Процесс должен создавать файл и записывать в него число 0. Затем вызывается функция fork(), после чего родительский и дочерний процессы должны по очереди увеличивать число, прочитанное из файла. При каждом увеличении счетчика процесс должен выводить информацию о том, кто произвел увеличение - родитель или потомок.