[Linux C编程]exec函数簇
来源:互联网 发布:windows隐藏任务栏 编辑:程序博客网 时间:2024/05/14 03:11
exec函数簇
在Linux中进程要使用exec函数族来启动另一个程序的执行。系统调用execve()对当前进程进行替换,替换者为一个指定的程序,其参数包括文件名(filename)、参数列表(argv)以及环境变量(envp)。exec函数族当然不止一个,但它们大致相同,在 Linux中,它们分别是:execl,execlp,execle,execv,execve和execvp。
一个进程一旦调用exec类函数,它本身就"死亡"了,系统把代码段替换成新的程序的代码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,唯一留下的,就是进程号,也就是说,对系统而言,还是同一个进程,不过已经是另一个程序了。(不过exec类函数中有的还允许继承环境变量之类的信息。)
1.execl
函数的作用:执行文件
函数的原型:int execl(const char *path,const char *arg,…);
返 回 值:成功:函数不返回
失败:函数返回-1
#include <unistd.h>
int main()
{
execl(“/bin/ls”,”ls”,”-al”,”/etc/passwd”,NULL);
return 0;
}
2.execlp
函数的作用:从path环境变量中查找文件执行
函数的原型:int execlp(const char *file,const char *arg,…);
返 回 值:成功:函数不返回
失败:函数返回-1
3.execv
函数的作用:执行文件
函数的原型:int execv(const char *path,char * const argv[]);
函数的参数:path:代表的文件路径
argv:是一个数组里指针传递过来
返 回 值: 成功:函数不返回
失败:函数返回-1
int main()
{
char * argv[] = {“ls”,”-al”,”/etc/passwd”,NULL};
execv(“/bin/ls”,argv);
}
4.execve
函数的作用:执行文件
函数的原型:int execve(const char * filename, char * const argv[],char * const envp[]);
函数的参数:filename代表的文件路径
argv是数组里指针传过来
envp是传递给执行文件的新环境变量
返 回 值: 成功:函数不返回
失败:函数返回-1
int main()
{
char * argv[] = {“ls”,”-al”,”/etc/passwd”,NULL};
char * envp[] = {“PATH = /bin”,0};
execve(“/bin/ls”,argv,envp);
}
5.execvp
函数的作用:执行文件
函数的原型:int execvp(const char * file,char * const argv[]);
返 回 值: 成功:函数不返回
失败:函数返回-1
int main()
{
char * argv[] = {“ls”,”-al”,”/etc/passwd”,0};
execvp(“ls”,argv);
}
- [Linux C编程]exec函数簇
- linux下c语言编程exec函数使用
- Linux C编程--进程介绍2--exec函数
- Linux C编程--进程介绍2--exec函数
- linux下c语言编程exec函数使用
- Linux c编程 exec execl
- Linux c编程 exec execl
- linux 进程控制编程 exec族函数
- linux C编程中exec调用
- Linux C——exec函数族
- Linux下C语言开发(进程控制编程——fork()、exec函数族)
- Linux进程控制编程之exec函数族
- Linux网络编程 fork() 和 exec() 函数实例分析
- Linux系统编程_9_进程控制之exec 函数
- Linux系统编程——进程替换:exec 函数族
- Linux系统编程——进程替换:exec 函数族
- Linux系统编程——进程替换:exec 函数族
- 【Linux系统编程】进程替换:exec 函数族
- Activity的四种启动模式详解
- clearfix的用法
- codeforces 731E (优先队列 DP)
- 用一个大家都懂的方式来聊聊 YouTube 基于深度神经网络的推荐系统
- Android OkHttp3网络请求框架使用入门
- [Linux C编程]exec函数簇
- Android学习——给组件添加事件侦听
- 第八周项目4——字符串加密
- coreData
- 直接从一个页面退出程序,而不需要连续按back键
- windows和linux下socket编程的不同
- http协议与网络基础
- 又是一个新开始
- nginx 下 thinkphp 502 bad Gateway + "LNMP一键安装包的Nginx 502 Bad Gateway错误可能原因及解决方法"