为了账号安全,请及时绑定邮箱和手机立即绑定

请解释exec()函数及其家族

请解释exec()函数及其家族

C
慕容708150 2020-02-04 15:48:53
什么是exec()功能及其家族?为什么要使用此功能,其功能如何?请任何人解释这些功能。
查看完整描述

3 回答

?
哔哔one

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


查看完整回答
反对 回复 2020-02-04
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

exec系列函数使你的程序执行不同的程序,取代旧的程序它运行。即,如果您打电话

execl("/bin/ls", "ls", NULL);

然后使用ls调用的的进程ID,当前工作目录和用户/组(访问权限)执行程序execl。之后,原始程序不再运行。

要启动新进程,将使用fork系统调用。要执行程序而不替换原始程序,您需要fork依次按exec


查看完整回答
反对 回复 2020-02-04
  • 3 回答
  • 0 关注
  • 709 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信