Системное программирование, сигналы
Все программы должны соответствовать принятому стилю кодирования.
- В начале файла - заголовок с автором и лицензией;
- Перед каждой функцией - комментарий с описанием функции и аргументов;
- Текст программы разбит на "абзацы" с комментарием перед каждым "абзацем".
Все возвращаемые функциями значения должны проверяться. В случае ошибок выполнение программы должно аварийно завершаться с выдачей сообщения об ошибке и кодом завершения EXIT_FAILURE.
Про Unicode, UTF-8, UCS-4, L"строка" и многобайтовые кодировки см. Спольски Д., Джоэл о программировании гл. 4 (стр. 45).
10. Сигналы
- Реализовать пример работы функции kill()
- Реализовать пример работы функции raise()
- Реализовать пример работы функции alarm()
- Реализовать пример работы функции pause()
- Реализовать пример работы функции sigemptyset()
- Реализовать пример работы функции sigfillset()
- Реализовать пример работы функции sigaddset()
- Реализовать пример работы функции sigdelset()
- Реализовать пример работы функции sigismember()
- С помощью функции sigprocmask() получить текущую маску сигналов процесса
- С помощью функции sigprocmask() заблокировать получение сигнала SIGUSR1, после чего восстановить исходную маску сигналов процесса. См. стр. 396.
- Реализовать пример работы функции sigpending()
- С использованием функции sigaction() назначить обработчик сигнала SIGINT. Проверить срабатывание обработчика при нажатии Ctrl-C.
- С использованием функции sigaction() назначить обработчик сигнала SIGCHLD. Проверить срабатывание обработчика при завершении процесса-потомка.
- Реализовать пример работы функции sigsuspend()
- Продемонстрировать нереентерабельность функции inet_ntoa()
- Продемонстрировать пример неатомарного доступа к данным