多线程学习(二)

版权声明:博主瞎写,随便看看 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我们就可以把这个进程杀死。

猜你喜欢

转载自blog.csdn.net/LAN74__/article/details/78867999