码迷,mamicode.com
首页 > 其他好文 > 详细

exec函数族:

时间:2020-12-15 12:22:16      阅读:3      评论:0      收藏:0      [点我收藏+]

标签:变量   ali   哨兵   函数   argv   自己   失败   return   lis   

使进程执行某一程序。成功无返回值,失败返回 -1

int execlp(const char *file, const char *arg, ...); 借助 PATH 环境变量找寻待执行程序

1: 程序名

2argv0

3argv1

...argvN

哨兵:NULL

 

int execl(const char *path, const char *arg, ...); 自己指定待执行程序路径。

int execvp();

ps ajx --> pid ppid gid sid

#include<stdio.h>

#include<unistd.h>

int main(void)

{

    //使用execl() 来调用其他的程序

 

     execlp("ls","ls","-a","-l",NULL); // 相当于在程序中调用ls 命令

     printf("error execlp");

     return 0;

}

 

execvp函数

  加载一个进程,使用自定义环境变量 env

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

变参形式:

1...

2argv[] ( main 函数也是变参函数,形式上等于 int main( int argc , char* argv0,... ) )

变参终止条件:(1NULL结尾 (2)参数固定

execvp execlp 参数形式不同,原理一致。

Char *argv[] = { "ls","-a","-l",NULL};

Execvp(ls,argv);

 

 exec函数族的一般规律,exec函数一旦调用成功及执行新的程序,不返回。只有失败的时候才返回,错误值-1

 L (list)  命令行参数列表  execl()

 P( path ) 搜索文件用的path变量

 V( vector ) 使用命令行参数数组  execvp()

 E( environment ) 使用环境变量数组,不适用进程原来的环境变量,设置加载程序运行的环境变量。

exec函数族:

标签:变量   ali   哨兵   函数   argv   自己   失败   return   lis   

原文地址:https://www.cnblogs.com/love-life-insist/p/14110745.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!