为什么没有cdirent或sys/cstat

rgk*_*rgk 4 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
Run Code Online (Sandbox Code Playgroud)

继此给出的建议上哪里找标准C++头文件,我可以找到cstdio,cstdlib,ctime和这使我对我的问题等等

  1. 什么时候将C标准库文件转换为C++标准库文件?
  2. 如何在程序中包含此类文件?这里的页面只讨论标准和非标准头文件.但我相信dirent.h是一个标准的库文件[纠正我,如果我错了]

提前感谢所有建议

Ign*_*ams 5

dirent.h并且sys/stat.h是POSIX/SUS标头而不是标准的C/C++标头,因此不符合标准C++规则.