1. execl(const char *path,argv0,argv1,...,0);
/**
*其中path表示要启动可执行文件的文件名,包括路径名
*会默认的在系统环境变量PATH中搜寻,如果给定文件路径名,那么直接找这个文件
*argv0,argv1....为可变参数列表,最后一个用(char*)0结束
*/
2.execlp(const char *file,argv0,argv1,...,0);
/**
*其中file表示要启动可执行文件的文件名
*文件名会默认的在系统环境变量PATH中搜寻,如果给定文件路径名,那么直接找这个文件
* argv0,argv1....为可变参数列表,最后一个用(char*)0结束
*/
2.execle(const char *path,argv0,argv1,...,0,char* const envp[]);
/**
*其中path表示要启动可执行文件的文件名,可以不包括路径名,路径由envp给定
*envp表示要搜索可执行文件的路径,文件目录
*整个函数表示,在envp所指的文件路径下,搜索可执行文件path,并且给这个可执行文件的参数为
* argv0,argv1....0(结束)
*/
/**
execv,execvp,execve
与上面三个不同的就在于他们不是可变参数列表,而是把参数放在一个指针数组里面
*/
4.execv(const char *path,char*const argv[]);
/**
*其中path表示要启动可执行文件的文件名,可以不包括路径名,可以不包括路径名
*文件名会默认的在系统环境变量PATH中搜寻
*envp表示给可执行的文件设置环境变量
*/
5.execvp(const char *file,char* const argv[]);
/**
*其中file表示要启动可执行文件的文件名,可以不包括路径名
*文件名会默认的在系统环境变量PATH中搜寻
*argv参数数组,最后一个参数用(char*)0结束
*/
6.execve(const char *path,char* const argv[],char* const envp);
/**
*其中file表示要启动可执行文件的文件名,可以不包括路径名
*文件名会默认的在系统环境变量PATH中搜寻
*argv参数数组,最后一个参数用(char*)0结束
*/
7.int execve(const char *filename, char *const argv[],char *const envp[]);
/**规律
*所有的函数调用都是通过系统调用函数execve实现的
*所有带p结尾的函数会默认的在系统环境变量PATH中搜寻可执行文件,(在不指定可执行文件路径的情况下)
*带l的函数都是可变参数的,不带l的是把可执行文件的参数放在一个指针数组里面
*/
linux exec 系列函数说明
最新推荐文章于 2022-10-09 22:06:24 发布