LINUX.ORG.RU

fork&zombie


0

0

В ниже приведенном фрагменте программы fork используется для создания процесса, в котором выполняется перемещение файла. ...code... child_proc=fork(); if (child_proc == 0) { /* FORKED PART */ time(&current_time); sprintf(mv_file_log, "%s/%s.%d", output_work, file, current_time); rename(file, mv_file_log); _exit(0); } ...code... При этом через некоторое время некоторые порожденные процессы падают в zombie, число которых со временем растет. В чем может быть проблема?

anonymous

Re: fork&zombie

отлавливать нужно завершение потомков при помощи wait/waitpid, а то они не знают кому состояние завершения возвращать

Z0termaNN ()

Re: fork&zombie

#include <signal.h>
#include <sys/wait.h>

void fireman(void);

tra-la-la ...(tvoi kod)

signal(SIGCHLD,fireman);

tra-la-la ... (opiat kod)

void fireman(){
union wait wstatus;
while (wait3(&wstatus,WNOHANG,NULL)>0);
}
na "warning: passing arg 2 of `signal' from incompatible pointer type" mozhno zabit

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