2012-12-04 107 views
2

我正在讀一本書並碰到這句話:Windows does not maintain parent-child relationships among processes like Unix does.不幸的是,沒有任何進一步的解釋。那麼Unix和Windows進程之間的父子關係有什麼區別呢?Windows中的親子關係

回答

4

Windows不提供直接的getppid API,沒有Win32 API來分派進程並繼承父級的所有內存(在Windows兒童只在允許時才繼承這些句柄)。即使以進程瀏覽器使用的間接方式獲取進程的父PID,也不能保證獲得指向有效進程的PID,因爲有關進程的父PID的信息只能在在父母死在孩子面前的情況下,過程創建的時間並不會更新。

因此,獲取父PID的間接方法只會告訴創建此過程的進程的PID,僅此而已。 (與Unix或其他init進程將孤兒進程作爲子進程的其他進程不同)在Windows上,人們不會談論孤兒進程或殭屍。

可能還有更多。所有這些(以及更多)等同於「窗口不維護父子關係」的陳述。