Как в родителе дождаться окончания всех потомков???
какой wait для этого использовать???
while (wait(-1,0,0) != -1);?
Можно еще вот так:
do{ while (wait(-1,0,0) != -1); } while (errno == EINTR);
Это чтобы перехватывать всякие сигналы.
"man wait"
>while (wait(-1,0,0) != -1);
>
>?
>
>Можно еще вот так:
>
>do{ while (wait(-1,0,0) != -1); } while (errno == EINTR);
>
>Это чтобы перехватывать всякие сигналы.
>
>"man wait"Спасибо большое!!очень помогло!!
теперь усложним задачу:))))))
как ждать завершения ВСЕХ потомков определённое время??
Чего-то я в прошлый раз намудрил - у wait всего один парамерт. Это у waitpid их три :)Ты ман читал ? Там же по-английски/русски написано:
"Функция wait приостанавливает выполнение текущего процесса до тех пор, пока дочерний процесс не завершится, или до появления сигнала, который либо завершает текущий процесс, либо требует вызвать функцию-обработчик."
А теперь смотри в сторону сигнала SIGALRM м его обработчика, устанавливаемого с помощью "signal(...,...)". А чтобы всё это работало - "man alarm" и впихиваешь его прямо в обработчик сигнала SIGALRM.
Теоретически так :)