我正在使用指令
启动流程execl("./softCopia","softCopia",NULL);
softCopia只是一个将整数写入文件的虚拟对象。
我想知道如何获得这个过程的pid?
答案 0 :(得分:5)
由于所有Unix exec函数用新的函数替换正在运行的进程,因此exec进程的PID与之前的PID相同。
所以,在调用getpid()
之前,使用execl
调用来获取PID。
或者,如果您确实想继续运行主程序并启动新程序,请先使用fork()
。 fork()
函数返回错误的负值,0表示新的子进程,以及父进程中子进程的PID。因此,父母可以使用其中一个wait
函数,或者继续其业务直到稍后。