如何使用系统调用获取进程的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()
中)。
在 C 程序中,在 main
中,我正在使用 system()
调用系统函数。
现在我想要由 system()
启动的那个进程的 pid。
有什么方法可以获取该 pid 吗?
不,一般来说它没有用。当你的程序调用system()
returns时,子进程已经终止并被reaed,所以没有进程(连僵尸进程都没有)可以引用。
如果您需要启动一个进程并保留其 PID,您需要自己 fork()
一个子进程(注意父进程的返回值),而在子进程中,exec()
命令。在父级中,您现在拥有 PID,并且可以使用它(例如在 waitpid()
中)。