• exec函数族的应用


    #include

    extern char **environ;

    int execl(const char *pathname, const char *arg, ...

              /* (char  *) NULL */);

    int execlp(const char *file, const char *arg, ...

               /* (char  *) NULL */);

    int execle(const char *pathname, const char *arg, ...

               /*, (char *) NULL, char *const envp[] */);

    int execv(const char *pathname, char *const argv[]);

    int execvp(const char *file, char *const argv[]);

    int execvpe(const char *file, char *const argv[],

                char *const envp[]);

    例子:代码如下

    char *argv1[] = {"./hello", NULL};

    char *argv2[] = {"ls", "-l", NULL};

    //if (0 > execl("./hello", "./hello", NULL))

    //if (0 > execl("/usr/bin/ls", "ls", "-l", NULL))

    //if (0 > execlp("ls", "ls", "-l", NULL))

    //if (0 > execv("./hello", argv1))

    if (0 > execvp("ls", argv2))

    {

    perror("exec");

    return -1;

    }

    //printf("nihao!\n");

    -----------------------------------------------------------------------------------------------------

    代码2:

    #include
    #include
    #include

    int main(int argc, char *argv[])

        pid_t pid = fork();
        if (pid < 0)
        {
            perror("fork");
            return -1;
        }
        if (0 == pid) //child
        {
            char *argv1[] = {"./hello", NULL};
            char *argv2[] = {"ls", "-l", NULL};
            //if (0 > execl("./hello", "./hello", NULL))
            //if (0 > execl("/usr/bin/ls", "ls", "-l", NULL))
            //if (0 > execlp("ls", "ls", "-l", NULL))
            //if (0 > execv("./hello", argv1))
            if (0 > execvp("ls", argv2))
            {
                perror("exec");
                return -1;
            }
            //printf("nihao!\n");
        }
        else
        {
            while (1)
            {
                printf("hello world!\n");
                sleep(1);
            }
        }


        return 0;

     

  • 相关阅读:
    【矩阵论】2. 矩阵分解——单阵及特征值特征向量一些求法
    LR低代码快速开发平台 高效调整企业组织架构
    JavaWeb-解析ServletCntext应用域
    .net 项目使用 JSON Schema
    MySQL【视图】
    Perl中常见符号与操作
    两种动态代理比较(补充),进程通信方式总结
    2022/7/27 算力-价格明细
    10分钟!搞懂计算机磁盘实现原理
    ETL调度同步工具比较-Kettle、DolphinSchedule、DataX
  • 原文地址:https://blog.csdn.net/qq_63626307/article/details/126506921