C使用execl启动进程的pid

时间:2017-03-03 00:40:53

标签: c pid execl

我正在使用指令

启动流程
execl("./softCopia","softCopia",NULL);

softCopia只是一个将整数写入文件的虚拟对象。

我想知道如何获得这个过程的pid?

1 个答案:

答案 0 :(得分:5)

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

所以,在调用getpid()之前,使用execl调用来获取PID。

或者,如果您确实想继续运行主程序并启动新程序,请先使用fork()fork()函数返回错误的负值,0表示新的子进程,以及父进程中子进程的PID。因此,父母可以使用其中一个wait函数,或者继续其业务直到稍后。