为什么没有cdirent或sys / cstat
Why is there no cdirent or sys/cstat
我正在编写一个C++代码,该代码遍历目录的所有条目,并决定使用dirent.h。由于我使用的是C++,我决定使用 C++ 标准来包含 C 库文件[即在库名称前面加上 c 并删除末尾的 .h]
在不添加任何功能的情况下,我决定编译一次程序,看看是否真的有cdirent
或sys/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++头文件的建议,我可以找到cstdio
、cstdlib
、ctime
等,这让我想到了我的问题
- C 标准库文件
- 何时转换为C++标准库文件?
- 如何在程序中包含此类文件?这里的页面只讨论标准和非标准头文件。但我相信
dirent.h
是一个标准的库文件[如果我错了,请纠正我]
提前感谢您的所有建议
dirent.h
和sys/stat.h
是POSIX/SUS标头,而不是标准的C/C++标头,因此不遵守标准的C++规则。
相关文章:
- 在 C/C++ 中打开驻留在 "/sys/" 下的文件时出错
- macOS 致命错误:sys/_types/_int8_t.h:没有此类文件或目录 #include < sys/_types/_int8_t.h>
- 如何在 sys/select.h 中正确使用
- 代码::块C++使用 MacOS 编译 Mojave : 致命错误: sys/cdefs.h: 没有这样的文件或目录
- 如何强制嵌入式python使用与命令行相同的sys.path?
- pybind11将python sys.stdout从print()重定向到c++
- 如何在运行时对程序创建的.sys文件设置文件版本
- 为什么 sys 套接字 recv 函数不填充数据但返回字节长度?
- C++:<sys/sysctl.h> 无法声明函数CTL_HW和HW_NCPU
- 为什么我可以在不链接任何额外库的情况下包含 sys/*.h
- 我可以在不包含 <sys/socket.h> 的情况下使用 C 套接字吗?
- 无法打开源文件"sys/types.h"、"sys/stat.h"
- 如何修复OSX中的"fatal error: 'sys/epoll.h' file not found"?
- 为什么捕获的 sys.exit() 代码与提供的代码不同?
- The mess that is ctime, time.h, sys/time.h
- 为什么有些 C/C++ 标头前面有"sys/"?
- 使用 CreateProcessW 捕获 Python Sys.Exit 代码
- 在 sys/sysmacros.h <iterator>中定义的主要和次要宏由
- C 检索自1970年1月1日以来的MS数量:无法开源文件SYS/TIME.H
- 为什么没有cdirent或sys / cstat