【发布时间】:2016-12-13 13:11:54
【问题描述】:
我正在尝试使用以下方法在 C 中创建一个僵尸进程:
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
void main()
{
int pid;
pid=fork(); /* Duplicate */
if (pid!=0) /* Branch based on return value from fork() */
{
while (1) /* never terminate, and never execute a wait()*/
sleep(1000);
}
else
{
exit(42); /* Exit with a silly number */
}
}
问题是我只知道如何检查僵尸进程是否只存在于 bash 中。所以我使用了 Windows 10 中可用的 Bash on windows 功能。我为上述代码创建了一个可执行文件并在后台运行它并检查了一个僵尸进程但找不到它。我在一台运行 Ubuntu 的 PC 上重复了相同的步骤,并且成功了。我做错了什么?
【问题讨论】:
-
Windows 不是 UNIX。
-
您真正想要完成什么?
-
@IInspectable 这只是大学时给我们的作业。创建一个僵尸进程。我在运行 Ubuntu 的大学计算机实验室中成功地做到了这一点。但不明白为什么我在 Windows 上的 Bash 没有得到相同的结果
-
适用于 Linux 的 Windows 子系统是一个测试版。即使是 RTM,您也应该预料到行为会有所不同。
标签: c windows process zombie-process