打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Linux下execl函数学习

http://blog.csdn.net/bao_bei/article/details/48287945

2015

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

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

  1. #include <unistd.h>/*** File: execl.c**/  
  2. #include <iostream>  
  3. using namespace std;  
  4. int main()  
  5. {  
  6.   // 执行/bin目录下的ls, 第一参数为程序名ls, 第二个参数为"-al", 第三个参数为"/etc/passwd"  
  7.   if(execl("/bin/ls", "ls", "-al", "/etc/passwd", (char *) 0) < 0)  
  8.   {  
  9.       cout<<"execl error"<<endl;  
  10.   }  
  11.    else  
  12.   {  
  13.      cout<<"success"<<endl;  
  14.   }  
  15.   return 0;  
  16. }  

execl函数特点:

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

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

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




本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Linux入侵应急响应案例及处置总结
Linux中的两种文件锁—协同锁与强制锁
什么是进程调度?linux中进程调度分为哪几种?
linux system函数使用详解
linux内核分析笔记----系统调用
Linux内核装载和启动一个可执行文件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服