ff35e3820794f8ed5abf1246cb21a832.png
他们的作用都是执行一个文件李早,当我们创建了一个进程之后,通常将子进程替换成新的进程映象,这可以用exec系列的函数来进行。当然,exec系列的函数也可以将当前进程替换掉。例如:在shell命令行执行ps命令,实际上是shell进程调用fork复制一个新的子进程,在利用exec系统调用将新产生的子进程完全替换成ps进程。
exec系列函数(execl、execlp、execle、execv、execvp)包含头文件
功能:
用exec函数可以把当前进程替换为一个新进程,且新掘扰信进程与原进程有相同的PID。exec名下是由多个关联函数组成的判轮一个完整系列,
C语言execl()函数:执行文件函数相关函数:fork, execle, execlp, execv, execve, execvp
头文件:#include <unistd.h>
定义函数:int execl(const char * path, const char * arg, ...)
函数说明:execl()用来执行参数path 字符串所代表的文件路径, 接下来的参数代表执行洞穗该文件时传递过去的argv(0), argv[1], ..., 最后一个参数必须用空指针(NULL)作竖耐结束.
返回值:如果执行成功则函数不会返余颤春回, 执行失败则直接返回-1, 失败原因存于errno 中.
范例
#include <unistd.h>
main()
{
execl("/bin/ls", "ls", "-al", "/etc/passwd", (char *)0)
}
执行:
/*执行/bin/ls -al /etc/passwd */
-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)