3 回答
TA贡献1854条经验 获得超8个赞
exec()系列中的函数具有不同的行为:
l:参数作为字符串列表传递给main()
v:参数作为字符串数组传递给main()
p:搜索新运行程序的路径
e:环境可以由调用方指定
您可以将它们混合,因此具有:
int execl(const char * path,const char * arg,...);
int execlp(const char * file,const char * arg,...);
int execle(const char * path,const char * arg,...,char * const envp []);
int execv(const char * path,char * const argv []);
int execvp(const char * file,char * const argv []);
int execvpe(const char * file,char * const argv [],char * const envp []);
对于所有这些文件,初始参数是要执行的文件的名称。
有关更多信息,请阅读exec(3)手册页:
man 3 exec # if you are running a UNIX system
TA贡献1795条经验 获得超7个赞
该exec
系列函数使你的程序执行不同的程序,取代旧的程序它运行。即,如果您打电话
execl("/bin/ls", "ls", NULL);
然后使用ls
调用的的进程ID,当前工作目录和用户/组(访问权限)执行程序execl
。之后,原始程序不再运行。
要启动新进程,将使用fork
系统调用。要执行程序而不替换原始程序,您需要fork
依次按exec
。
- 3 回答
- 0 关注
- 709 浏览
添加回答
举报