为什么 Linux C API 'open' 支持函数重载?

xml*_*lmx 1 c linux api overloading

根据Linux 手册页,Linux C APIopen有两个原型如下:

int open(const char *pathname, int oflags);
int open(const char *pathname, int oflags, mode_t mode);
Run Code Online (Sandbox Code Playgroud)

让我困惑的是:

为什么 Linux C API 'open' 支持函数重载??

Yu *_*Hao 5

不,C 不支持函数重载。

POSIXopen函数实际上是一个可变参数函数,它的签名是:

int open(const char *path, int oflag, ... );
Run Code Online (Sandbox Code Playgroud)