为什么没有cdirent或sys / cstat

Why is there no cdirent or sys/cstat

本文关键字:sys cstat cdirent 为什么      更新时间:2023-10-16

我正在编写一个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

按照本页中给出的关于在哪里查找标准C++头文件的建议,我可以找到cstdiocstdlibctime等,这让我想到了我的问题

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

提前感谢您的所有建议

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