原因是,使用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中,因为没有其他依赖项.