вопрос по моему страшно глупый, но справится я не смог. вот код:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
main()
{
 pid_t ch;
 if((ch = fork()) == 0)
 {
   // ..... do something ....
   exit(0);
 }
 sleep(20);
 return 0;
}
так вот, при засыпании на sleep(20), в порождённый процесс не умирает, а виден как зомби, и не пропадает, пока жив родитель. а надо чтоб умер. т.к. слип сидит только для отладки, на самом деле весь форк будет сидеть в цикле. родитель не должен умирать никогда, стало быть зомби будут плодится и плодится. зомби не появляется, если к if-у добавить else wait(&status);, но тогда родитель ждет смерти порожденного процесса, а это не надо...
P.S. чтото жутковато вышло с терминами, но вы меня поняли :)

    
        Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
      
Похожие темы
- Форум fork() (2020)
 - Форум fork(), exec(), wait() (2020)
 - Форум [fork()+getpid()] Мааа...ленький вопросик (2008)
 - Форум Чтение выхлопа процесса без ожидания его завершения (2019)
 - Форум fork + popen. Залипание на wait при SIGCHLD (2019)
 
- Форум по поводу man,exec и fork (2010)
 - Форум Семафоры (2005)
 - Форум деление на ноль и сигфолт, без падения программы (2009)
 - Форум программный ввод пароля в ssh (2010)
 - Форум Передача имени файла дочернему процессу (2017)