【发布时间】:2014-02-28 19:16:27
【问题描述】:
过去 2 天我一直在试图理解 execlp() 系统调用,但我在这里。让我直奔主题。
execlp 的man page 将系统调用声明为int execlp(const char *file, const char *arg, ...);,其描述如下: 可以认为 execl()、execlp() 和 execle() 函数中的 const char arg 和后续省略号作为 arg0, arg1, ..., argn。
然而,我在我们的教科书中看到系统调用是这样调用的:execlp(“/bin/sh”, ..., “ls -l /bin/??”, ...);(“...”是我们作为学生来理解的)。然而,这个系统调用甚至不像系统调用的man page 上的声明。
我很困惑。任何帮助表示赞赏。
【问题讨论】:
-
因为在手册页中它是函数的定义,我猜在你的教科书中它是如何使用它的一个例子
-
你是对的。但是在上面的例子中它到底想做什么以及它是如何被使用的呢? Google 在 execlp() 上的信息非常糟糕。
-
你是什么意思它“甚至不像”声明?参数是
char *。这非常类似于char *!