![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| HellMilitia |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 12.11.2009 Репутация: нет Всего: нет |
Здравствуйте, товарищи!
Задача: создать дочерний процесс, из него запустить стороннюю программу с параметрами и получить код с которым она завершилась. Что сделал я: Во - первых, абсолютно запутался. Вот функция system() возвращает код, но, в данной задаче нужно использовать именно exec(). Создаю дочерний процесс, что далее не знаю. Вопрос: как получить код завершения дочернего процесса? |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
покажите код
|
|||
|
||||
| DurRandir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: 14 Всего: 17 |
Отличие в том, что system дожидается завершения дочернего процесса, а fork+exec - нет, выполнение основной программы пойдёт дальше. Вам надо установить обработчик сигнала CHLD с вызовом внутри waitpid, которая уже получит код завершения дочернего процесса когда он завершится (и не раньше, логично?)). Поищите примеры использования/почитайте документацию (perldoc perlipc, perldoc -f waitpid).
Это сообщение отредактировал(а) DurRandir - 8.5.2010, 12:40 |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |