多线程学习(二)

来源:互联网 发布:数据库发展方向 编辑:程序博客网 时间:2024/05/18 05:38
/**************************    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我们就可以把这个进程杀死。

原创粉丝点击