execle函数原型

时间:2015-03-19 17:16:51

标签: function unix exec system-calls variadic-functions

我最近一直在研究Unix系统编程。我在exec的手册页中看到了这个,

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

这个函数原型如何在中间有一个...?这甚至无法编译!

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

我觉得这只是供用户查看,并且有不同的内部实现。这只是猜测,我不确定。

1 个答案:

答案 0 :(得分:2)

  

我觉得这只是供用户查看

假设你被尾随的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 *, ... ));