Самьюэл Алекс
Шрифт:
3.4. Завершение процесса
Обычно процесс завершается одним из двух способов: либо выполняющаяся программа вызывает функцию
Возможно также аварийное завершение процесса, в ответ на получение сигнала. Таковыми могут быть, например, упоминавшиеся выше сигналы
Любой сигнал можно послать с помощью команды
Для отправки сигнала из программы предназначена функция
Для использования функции
По существующему соглашению код завершения указывает на то, успешно ли выполнилась программа. Нулевой код говорит о том, что все в порядке, ненулевой код свидетельствует об ошибке. В последнем случае конкретное значение кода может подсказать природу ошибки. Подобным образом функционируют все компоненты GNU/Linux. Например, на это рассчитывает интерпретатор команд, когда в командных сценариях вызовы программ объединяются с помощью операторов
Помните о следующем ограничении: несмотря на то что тип параметра функции
3.4.1. Ожидание завершения процесса
Читатели, запускавшие программу
Но бывают ситуации, когда родительский процесс должен дождаться завершения одного или нескольких своих потомков. Это можно сделать с помощью функций семейства
3.4.2. Системные вызовы wait
Самая простая функция в семействе называется