版权声明:博主瞎写,随便看看 https://blog.csdn.net/LAN74__/article/details/78867999
/**************************
execl 函数的应用
**************************/
#include <iostream>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
using namespace std;
int main(){
for(int i = 0; i < 7; i++){
cout << "father : " << i << endl;
}
pid_t pid = fork();
if(pid == 0){
execl("/home/lan7/Documents/c++/xc/app","app",NULL);//一般为绝对路径,用一个已有的进程作为子进程
}
for(int i = 1;i <= 3;i++)
cout << "+++++++ i : " << endl;
}
如题(现在写博客怎么跟写知乎呢,没关系,自己看得懂就好,那些看我博客的呢。。。。。随缘啦)
execl(我老是打成Excel。。。)这个函数呢头文件在Windows和Linux下都不一样
Windows下头文件
#include <process.h>
Linux下头文件
#include <unistd.h>
像事例中,我们能看出来这个函数有三个参数int execl(const char *path, const char *arg, …);
path这里是一个程序路径,当创建出子进程后,用该路径下的指令代替子进程,后面的那些是该指令的参数,可以跟多个参数,以NULL结束,如果没有参数的话就不用管了。
这个是我自己写的一个死循环输出hahah 的进程,父进程结束后,只剩子进程在那hahaha了。
我们之前有介绍用ps auk 指令可以查看当前所有进程与其信息,在本示例中,未有终止的进程叫app,这样我们就可以用 ps aus | grep app,来查询带有app关键字的信息
我们可以看到有两个有关进程,一个是正在运行的叫app的,还有一个是干才查询app进程的那条进程,这时候,用kill指令带上其进程ID我们就可以把这个进程杀死。