C 获取使用 execl 启动的进程的 pid

C Get pid of process launched with execl

我正在使用指令

启动一个进程
execl("./softCopia","softCopia",NULL);

softCopia 只是一个在文件中写入整数的虚拟机。

我想知道如何获取此进程的 pid?

由于所有 Unix exec 函数用新进程替换 运行 进程,exec 进程的 PID 与之前的 PID 相同.

所以您通过使用 getpid() 调用获得 PID, 调用 execl.

之前

或者,如果您真的想继续 运行 您的主程序并启动一个新程序,您首先使用 fork()fork() 函数 returns 错误的负值,新的 child 进程的 0,以及 parent 中 child 的 PID。因此 parent 然后可以使用 wait 功能之一,或者只是继续其业务直到稍后。