我刚刚发现open()(man 2 open)系统调用有两个版本:
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
事实上,人们可以在单个C文件中使用它们都可以工作。标准C如何实现这一目标?
答案 0 :(得分:4)
答案 1 :(得分:4)
实际上,它不是C ++风格的函数重载。只是open()
是可变的:
int open(const char *fname, int flags, ...);
只有“标志”需要它,它才会寻找第三个参数。