C ++在创建进程时指定进程ID

时间:2015-02-16 16:29:44

标签: c++ pid

CreateProcess包含PROCESS_INFORMATION结构,该结构指定为创建的进程选择的进程ID。

如何指定创建过程时要使用的进程ID?

2 个答案:

答案 0 :(得分:6)

您根本无法指定进程ID。它由操作系统选择。

想象一下,您可以指定进程ID。操作系统必须锁定其内部进程列表结构,以便查找进程ID是否已存在。如果没有,为了防止任何其他进程创建具有相同的ID。这当然会增加内核的复杂性,而程序员却没有真正的收获。

如果不指定进程ID,操作系统可以原子地递增计数器以确定下一个进程ID,这样更容易,更快。

答案 1 :(得分:-1)

在CreateProcess函数中,PROCESS_INFORMATION不是输入参数。它是函数的输出参数。因此,无论您尝试分配哪个进程ID,内核都会覆盖该参数。 检查https://msdn.microsoft.com/en-us/library/windows/desktop/ms682512(v=vs.85).aspx中的示例用法。