该EXEC 函数族用新的过程映像替换当前过程映像。这里描述的功能是功能的前端的execve(2).
这些函数的初始参数是要执行的文件的路径名。
该 const char * arg 和随后的省略号EXECL, execlp,和execle 功能可以被认为是 为arg0 , ARG1 , …, ARGN 。它们一起描述了一个或多个指向以null结尾的字符串的指针的列表,这些字符串表示执行程序可用的参数列表。按照惯例,第一个参数应指向与正在执行的文件关联的文件名。参数列表 必须 被终止空值 指针。
该execv 和execvp 函数提供指向以null结尾的字符串的指针数组,这些字符串表示新程序可用的参数列表。按照惯例,第一个参数应指向与正在执行的文件关联的文件名。指针数组 必须 被终止空值 指针。
该execle 函数还通过以下方式指定执行过程的环境空值指针,用于终止参数列表中的参数列表或带有附加参数的argv数组的指针。这个附加参数是一个指向以null结尾的字符串和指针的数组 必须 被终止空值 指针。其他函数从外部变量获取新过程映像的环境 ENVIRON 在当前的过程中。
其中一些函数具有特殊的语义。
功能execlp 和execvp 如果指定的文件名不包含斜杠(/)字符,则将复制shell在搜索可执行文件时的操作。搜索路径是环境中指定的路径路径 变量。如果未指定此变量,则使用默认路径“::/ bin:/ usr / bin”。此外,还会特别处理某些错误。
如果文件被拒绝(尝试过的话)的execve 回EACCES),这些函数将继续搜索其余的搜索路径。但是,如果未找到其他文件,则它们将返回全局变量 错误号 调成EACCES.
如果无法识别文件的标题(尝试过的execve 回ENOEXEC),这些函数将以文件路径作为第一个参数执行shell。 (如果此尝试失败,则不再进行进一步搜索。)
回报价值
如果有的话EXEC 函数返回,将发生错误。返回值为-1,以及全局变量 错误号 将被设置为指示错误。
重要: 使用 人 命令( % 人 )查看特定计算机上如何使用命令。
名称
execl,execlp,execle,execv,execvp - 执行文件
概要
#包括 extern char ** environ; int execl(const char * 路径 ,const char * ARG ,…); int execlp(const char * 文件 ,const char * ARG ,…); int execle(const char * 路径 ,const char * ARG ,…,char * const envp ); int execv(const char * 路径 ,char * const ARGV ); int execvp(const char * 文件 ,char * const ARGV );