为什么系统调用部分中没有`execlp()`

时间:2017-01-25 20:43:02

标签: linux system-calls man

我注意到execlp()的条目不在手册页的系统调用(2)部分中,而是位于第(3)节子例程中。为什么会这样,而fork()位于第(2)节?

以下是链接:
https://linux.die.net/man/2/fork
https://linux.die.net/man/3/execlp

1 个答案:

答案 0 :(得分:4)

因为execlp()(以及同一手册页中的所有其他execXXX()函数)是围绕execve()系统调用的库函数包装器。将可变参数收集到数组中,并在PATH环境变量中搜索程序的步骤是在库中的用户模式代码中完成的,然后调用内核来启动程序的执行。 / p> 另一方面,

fork()只是直接调用内核。