execle函数原型

execle function prototype

最近在研究Unix系统编程。我在 exec

的手册页中看到了这个

int execle(const char *path, const char *arg,..., char * const envp[]);

这个函数原型怎么中间有一个...?这甚至无法编译!

有人可以解释一下这个原型吗?

我觉得这只是给用户看的,内部实现不同。这只是一个猜测,我不确定。

I feel that this is just there for the users to see

假设您对尾随的 envp[] 感到困惑,您是对的。如果我们查看 POSIX 文档,我们会发现实际原型应该是:

int execle(const char *, const char *, ...);

事实上,如果您在您的系统上查阅 unistd.h,您可能会找到这种形式的内容:

//glibc
extern int execle (__const char *__path, __const char *__arg, ...)
    __THROW __nonnull ((1, 2));

//musl
int execle(const char *, const char *, ...);

//cygwin
int     _EXFUN(execle, (const char *__path, const char *, ... ));