如何使用系统调用获取进程的pid?

How to get the pid of a process started using system call?

在 C 程序中,在 main 中,我正在使用 system() 调用系统函数。 现在我想要由 system() 启动的那个进程的 pid。 有什么方法可以获取该 pid 吗?

不,一般来说它没有用。当你的程序调用system() returns时,子进程已经终止并被reaed,所以没有进程(连僵尸进程都没有)可以引用。

如果您需要启动一个进程并保留其 PID,您需要自己 fork() 一个子进程(注意父进程的返回值),而在子进程中,exec()命令。在父级中,您现在拥有 PID,并且可以使用它(例如在 waitpid() 中)。