C++创建进程时指定进程id
C++ specify process id when creating process
CreateProcess 包含一个 PROCESS_INFORMATION 结构,用于指定为创建的进程选择的进程 ID。
如何指定进程在创建时使用哪个进程 ID?
您根本无法指定进程 ID。由操作系统选择。
想象一下,您可以指定一个进程 ID。 os 必须锁定其内部进程列表结构,以便查找进程 ID 是否已经存在。如果不是,则防止创建具有相同 ID 的任何其他进程。这当然会增加内核的复杂性,而对程序员来说并没有真正的好处。
在不指定进程 ID 的情况下,os 可以自动递增计数器来确定下一个进程 ID,这样更容易也更快。
在 CreateProcess 函数中 PROCESS_INFORMATION 不是输入参数。它是函数的输出参数。因此,无论您尝试分配什么进程 ID,该参数都会被内核覆盖。
查看 https://msdn.microsoft.com/en-us/library/windows/desktop/ms682512(v=vs.85).aspx.
中的示例用法
CreateProcess 包含一个 PROCESS_INFORMATION 结构,用于指定为创建的进程选择的进程 ID。
如何指定进程在创建时使用哪个进程 ID?
您根本无法指定进程 ID。由操作系统选择。
想象一下,您可以指定一个进程 ID。 os 必须锁定其内部进程列表结构,以便查找进程 ID 是否已经存在。如果不是,则防止创建具有相同 ID 的任何其他进程。这当然会增加内核的复杂性,而对程序员来说并没有真正的好处。
在不指定进程 ID 的情况下,os 可以自动递增计数器来确定下一个进程 ID,这样更容易也更快。
在 CreateProcess 函数中 PROCESS_INFORMATION 不是输入参数。它是函数的输出参数。因此,无论您尝试分配什么进程 ID,该参数都会被内核覆盖。 查看 https://msdn.microsoft.com/en-us/library/windows/desktop/ms682512(v=vs.85).aspx.
中的示例用法