【发布时间】:2020-05-02 17:17:18
【问题描述】:
我尝试创建一个僵尸进程,使用ps 命令进行验证。虽然解决方案很好,但对于将孩子识别为僵尸来说并不是很有启发性。谁能帮我做一些改进?
这是我的代码:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
int pid=fork();
if (pid>0)
{
printf("in parent process");
sleep(30);
execlp("ps","ps",NULL);
}
else if (pid==0)
{
printf("in child process");
}
return 0;
}
【问题讨论】:
-
为我工作。我在
a.out之后看到<defunct>。顺便说一句,sleep(30)太过分了。只需sleep(1)就足够了。 (你甚至可以用waitpid(pid, NULL, WNOWAIT);完全替换sleep,它仍然可以工作。) -
您希望一个足够好的解决方案更具启发性?这不是某种主观的说话方式吗?你想要一些东西还是只是一些东西? Zombie 进程是一个死进程……在系统中没有为它分配资源,而只是一个进程表的条目。
标签: c linux process child-process zombie-process