mkdir()在<sys/stat.h>
中,而rmdir()在<unistd.h>
中。将它们放在相同的头文件中更有意义吗?
答案 0 :(得分:6)
原因是,使用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
中,因为没有其他依赖项。