为什么mkdir()和rmdir()POSIX系统调用不同的头文件?

mkdir()位于< sys / stat.h>中而rmdir()在< unistd.h>中.将它们放在同一个文件中会不会更有意义?

解决方法

原因是,使用mkdir(2)在第二个参数中指定权限:

int mkdir(const char *pathname,mode_t mode);

这些模式标志和类型mode_t在sys / stat.h中定义(至少间接地通过在我的系统中包含bits / stat.h和bits / types.h),因此在那里定义mkdir()似乎也是合适的. .否则,包括unistd.h会导致错误,因为类型mode_t在那里是未知的.

相反,rmdir(2)除了文件名之外不接受任何参数,因此它可以保留在unistd.h中,因为没有其他依赖项.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...