вопрос по моему страшно глупый, но справится я не смог. вот код:
#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. чтото жутковато вышло с терминами, но вы меня поняли :)