相关函数: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.代码
- #include<sys/types.h>
- #include<unistd.h>
- #include<stdio.h>
- #include<stdlib.h>
- #include<errno.h>
- int main()
- {
- execl("/bin/ls", "ls", "-al", "/etc/passwd", (char *) 0);
- }
5.输出
rw-r--r-- 1 root root 1495 Jun 11 12:25 /etc/passwd