Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Код завершения дочернего процесса


Автор: HellMilitia 8.5.2010, 00:25
Здравствуйте, товарищи!

Задача: создать дочерний процесс, из него запустить стороннюю программу с параметрами и получить код с которым она завершилась.
Что сделал я: Во - первых, абсолютно запутался. Вот функция system() возвращает код, но, в данной задаче нужно использовать именно exec(). Создаю дочерний процесс, что далее не знаю.
Вопрос: как получить код завершения дочернего процесса?

Автор: arto 8.5.2010, 03:41
покажите код

Автор: DurRandir 8.5.2010, 12:39
Отличие в том, что system дожидается завершения дочернего процесса, а fork+exec - нет, выполнение основной программы пойдёт дальше. Вам надо установить обработчик сигнала CHLD с вызовом внутри waitpid, которая уже получит код завершения дочернего процесса когда он завершится (и не раньше, логично?)). Поищите примеры использования/почитайте документацию (perldoc perlipc, perldoc -f waitpid).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)