我刚刚发现的open()(男子2开放)系统调用有两个版本:open()系统调用多态性
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
事实上,人们可以在一个单一的C文件请使用两者会工作。标准C如何实现这一目标?
我刚刚发现的open()(男子2开放)系统调用有两个版本:open()系统调用多态性
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
事实上,人们可以在一个单一的C文件请使用两者会工作。标准C如何实现这一目标?
事实上,这不是C++ - 风格的函数重载。这只是open()
是可变参数:
int open(const char *fname, int flags, ...);
且仅当“标志”需要它,它会寻找第三个参数。
在手册页中没有看到标志和模式之间的任何关系。谨慎阐述? – lang2 2013-03-01 06:05:44
@ lang2模式*仅在需要时使用*,例如,当'O_CREAT'被指定为标志时。例如,当您打开一个文件供阅读时,谈论文件模式是没有意义的...... – 2013-03-01 06:07:03
@张元在C?一点也不。 – 2013-03-01 16:31:49