zoukankan      html  css  js  c++  java
  • linux高编进程------exec函数族

    exec函数族的功能是用一个新的进程镜像替换replace当前的进程镜像

    在使用的过程中也一定要刷新当前缓冲区。

    /*****环境变量*****/
    extern char **environ;
    /****************************
     * 功能:将新的进程镜像替换当前进程的镜像
     * 参数:执行的二进制文件路径以及参数
     ***************************/
    int execl(const char *path, const char *arg, ...);
    /****************************
     *功能:将新的进程镜像替换当前进程的镜像
     *参数:执行的二进制文件名字以及参数
     ****************************/
    int execlp(const char *file, const char *arg, ...);
    /****************************
     *功能:将新的进程镜像替换当前进程的镜像
     *参数:执行的二进制文件路径以及参数并且可以加入环境变量
     ****************************/
    int execle(const char *path, const char *arg,..., char * const envp[]);
    
    /********变参**************/
    int execv(const char *path, char *const argv[]);
    int execvp(const char *file, char *const argv[]);

    eg:

    /**************
     * 功能:打印时戳
     * ***********/
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    
    int main()
    {
        puts("Begin!");
        //0.刷新缓冲区
        fflush(NULL);
        //1.替换
        execl("/bin/date","date","+%s",NULL);
        //2.失败退出
        perror("execl()");
        exit(1);
        //3.成功不会执行
        puts("End!");
        exit(0);
    }

    =============================================================

    fork与exec函数族的使用

    /**************
     * 功能:子进程打印时戳
     *       父进程等待收尸
     * ***********/
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    
    int main()
    {
        pid_t pid ;
        puts("Begin!");
        //0.刷新缓冲区
        fflush(NULL);
        //1.创建子进程
        pid = fork();
        //2.失败判断
        if(pid < 0)
        {
            perror("fork()");
            exit(1);
        }
        //3.子进程:date
        if(pid == 0)
        {
            execl("/bin/date","date","+%s",NULL);
            //失败退出
            perror("execl()");
            exit(1);
        }
        //4.收尸
        wait(NULL);
        puts("End!");
        exit(0);
    }
  • 相关阅读:
    Ubuntu 8.04安设nVidia新版表现驱动
    特性化设置你的linux环境
    Ubuntu 8.04 去失踪文泉驿的点阵字形的方法
    Fedora Nightlife项目 扶助较劲争论机的空闲
    Ubuntu显卡驱动不精确,进入黑屏的处置装备
    Linux中翻开带flash网页主动封锁的处理办法
    Firefox 3 Alpha 5
    Ubuntu 8.04无法正常关机成就处置惩罚
    Redhat Enterprise Linux 5.2 公布了
    KOffice 1.6.3
  • 原文地址:https://www.cnblogs.com/muzihuan/p/5286788.html
Copyright © 2011-2022 走看看