linux下c++进程相关
1.首先是获取当前程序的pid和ppid(parent pid) #include<stdio.h> #include<unistd.h> int main() { printf("the pid of this program is %d\n",(int)getpid()); printf("the parent pid is %d\n",(int)getppid()); return 0; } 执行过程中发现,多次执行后pid一般会变化,而ppid一般不会变, 2.在程序中创建新进程可以有两种方式,一种是直接通过system函数,该函数相当于创建一个子进程,并将函数内的参数传递给该子进程,等同于在命令行下执行该命令,若该shell无法执行,则返回值为127,其他错误则返回值-1,执行正确返回值0; #include<stdlib.h> #include<stdio.h> int main() { int returnValue = system("ls -l"); printf("%d\n",returnValue); return 0; } system函数执行的结果被返回到终端中输出 还有一种方法就是通过fork()/exec()创建新进程,fork()函数创建一个父进程的拷贝给子进程,并在调用fork函数处继续执行下去,创建出的子进程也继续在该出进行