4

我正在看一本书,偶然发现这句话:Windows does not maintain parent-child relationships among processes like Unix does.不幸的是,没有任何进一步的解释。那么Unix和Windows进程在父子关系方面有什么区别呢?

4

1 回答 1

5

Windows 不提供直接 getppid API,没有 Win32 API 派生进程并继承父进程的所有内存(在 windows 上,子进程仅在允许时继承句柄)。即使以间接方式(如进程资源管理器使用的方式)获得进程的父 PID,也不能保证获得指向有效进程的 PID,因为有关进程的父 PID 的信息仅在进程创建的时间,并且在父母在孩子之前去世的情况下永远不会更新。

因此,获取父 PID 的间接方法只会告诉创建此进程的进程的 PID 是什么,仅此而已。(与 Unix 或其他 init 进程将孤儿进程作为其子进程的情况不同)在 Windows 上,不谈论孤儿进程或僵尸进程。

可能还有更多。所有这些(以及更多)相当于“windows 不维护父子关系”的声明。

于 2012-12-04T06:29:56.427 回答