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