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
功能之一,或者只是继续其业务直到稍后。
我正在使用指令
启动一个进程execl("./softCopia","softCopia",NULL);
softCopia 只是一个在文件中写入整数的虚拟机。
我想知道如何获取此进程的 pid?
由于所有 Unix exec 函数用新进程替换 运行 进程,exec 进程的 PID 与之前的 PID 相同.
所以您通过使用 getpid()
调用获得 PID,在 调用 execl
.
或者,如果您真的想继续 运行 您的主程序并启动一个新程序,您首先使用 fork()
。 fork()
函数 returns 错误的负值,新的 child 进程的 0,以及 parent 中 child 的 PID。因此 parent 然后可以使用 wait
功能之一,或者只是继续其业务直到稍后。