LINUX.ORG.RU

Обработчик сигнала в perl


0

0

Основной процесс форкает потомка, потомок делает:

exit (system("a.out"));

a.out:

int main(void)
{
return 10;
}

И в обработчик родителя возвращается не 10, а 0 !!!!
Если же в потмке делать exit(10); то родителю прийдет 10, а если в потомке делать $ret = 10; exit($ret); то родителю все равно прийдет 0, а не 10.

Есть ли решение???
Спасибо!!!

anonymous

Кроме того, если в потомке вместо exit вызвать die, тогда родителю вернется именно 10, как и надо, тоже самое если вместо die написать return;

например:

system(blah blah);
die; #вместо exit($?);

неужели на perl'е нельзя писать серьезный софт??!!

что скажут перл гуру???

anonymous
()
Ответ на: комментарий от anonymous

"неужели на perl'е нельзя писать серьезный софт??!!" - можно, только учится этому долго...

когда ты потомка грохаешь, ты должен следить за тем, чтобы он не стал зомби(perldoc -f wait, perldoc -f waitpit)...

как форкать - perldoc perlipc, там все написано...

vilfred ☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.