设为首页 加入收藏

TOP

Linux下execl函数学习
2014-11-24 01:01:06 来源: 作者: 【 】 浏览:3
Tags:Linux execl 函数 学习

Linux下头文件
#include
函数定义
int execl(const char *path, const char *arg, ...);
函数说明
execl()其中后缀"l"代表list也就是参数列表的意思,第一参数path字符指针所指向要执行的文件路径, 接下来的参数代表执行该文件时传递的参数列表:argv[0],argv[1]... 最后一个参数须用空指针NULL作结束。


函数返回值
成功则不返回值, 失败返回-1, 失败原因存于errno中,可通过perror()打印


实例1:


大家可以清楚的看到, 执行/bin目录下的ls, 第一参数为程序名ls, 第二个参数为"-al", 第三个参数为"/etc/passwd",但是没有输出success!!


这是为什么呢?


execl函数特点:


当进程调用一种exec函数时,该进程完全由新程序代换,而新程序则从其main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用另一个新程序替换了当前进程的正文、数据、堆和栈段。


用另一个新程序替换了当前进程的正文、数据、堆和栈段。


当前进程的正文都被替换了,那么execl后的语句,即便execl退出了,都不会被执行。


再看一段代码:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux下的无名管道pipe的设计 下一篇Linux下的进程等待(wait和waitpid)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: