相关函数:execle, execlp, execv, execve, execvp

1.表头文件:

#include <unistd.h>

2.函数定义:

int execl(const char *path, const char *arg, ...);

execl()用来执行参数path字符串所代表的文件路径, 接下来的参数代表执行该文件时传递的argv[0],argv[1].....是后一个参数必须用空指针NULL作结束

返回值:成功则不返回值, 失败返回-1, 失败原因存于errno中

3.函数说明

exec()函数之间的主要区别就在于命令行参数如何传给新程序.   execl系列将argv中的没一个元素作为单独的参数传给程序,而用NULL结束整个列表.   execv将命令行参数作为C字符串数组来传递(是一个指向以\0结尾的字符串数组的以"NULL"结尾的指针数组中的一个指针)   execle 和execve则是多了环境变量.   execve是内核中的实际调用

4.代码

 

  1. #include<sys/types.h> 
  2. #include<unistd.h> 
  3. #include<stdio.h> 
  4. #include<stdlib.h> 
  5. #include<errno.h> 
  6.  
  7. int main() 
  8.  execl("/bin/ls""ls""-al""/etc/passwd", (char *) 0); 

5.输出

rw-r--r-- 1 root root 1495 Jun 11 12:25 /etc/passwd