为什么没有cdirent或sys / cstat

时间:2014-12-02 05:22:25

标签: c++ c linux

我正在编写一个C ++代码,它遍历目录的所有条目,并决定使用dirent.h。由于我使用的是C ++,我决定使用C ++标准来包含C库文件[即用c前缀库名称并删除末尾的.h]

在没有添加任何功能的情况下,我决定编译我的程序一次以查看是否实际存在cdirentsys/cstat。 g ++告诉我这些文件不存在的错误

#include <iostream>
#include <cdirent>
#include <sys/cstat>
#include <sys/ctypes>

using namespace std;

int main()
{

}

dummy.cpp:2:19: error: cdirent: No such file or directory
dummy.cpp:3:21: error: sys/cstat: No such file or directory
dummy.cpp:4:22: error: sys/ctypes: No such file or directory

根据此page中给出的关于在哪里查找标准C ++头文件的建议,我可以找到cstdiocstdlibctime之类的内容我的问题

  1. 何时将C标准库文件转换为C ++标准库文件?
  2. 如何在程序中包含此类文件?这里的page只讨论标准和非标准头文件。但我相信dirent.h是一个标准的库文件[如果我错了就纠正我]
  3. 提前感谢所有建议

1 个答案:

答案 0 :(得分:5)

dirent.hsys/stat.h是POSIX / SUS标头而不是标准C / C ++标头,因此不符合标准C ++规则。