_finddata_t, _findfirst, _findnext for Mac OS-X
_finddata_t, _findfirst, _findnext for Mac OS-X
我正在尝试使用CodeBlocks和GCC编译器在OS-X上编译一个程序:
extern int listFiles(void) {
struct _finddata_t myFile;
int hFile;
if ((hFile = _findfirst("*.txt", &myFile)) == -1L) {
printf("No text files in current directory.n");
return 0;
}
printf("File name: %s File size: %d", myFile.name, myFile.size);
while (_findnext(hFile, &myFile) == 0) {
printf("File name: %s File size: %d", myFile.name, myFile.size);
}
_findclose(hFile);
return 1;
}
但是,编译失败,出现以下错误:
error: variable has incomplete type 'struct _finddata_t'
我假设这是一个仅用于_findfirst and _findnext
的windows结构。我可以使用什么等效的结构和函数来在OS-X上编译它?
正如Igor Tandetnik所评论的那样,您应该查看函数opendir()
,readdir()
,closedir()
*,类型DIR *
和struct dirent
。这是一个基本的低级接口,它读取目录中的每个条目,在没有任何过滤的情况下,以不确定的顺序(实际上,通常是名称在原始目录中出现的顺序,但通常不是字母顺序或任何其他顺序)呈现名称。
如果您想过滤文件名,以便只选择.txt
文件,那么您必须转到POSIX: scandir()
中更晦涩的部分。这允许您提供一个选择器函数(一个回调),它告诉scandir()
何时返回给定的条目,并且还接受一个比较器函数,用于对名称列表进行排序(就像通过qsort()
一样)。
*
在搜索时,我还发现了fdopendir()
和dupfd()
。
相关文章:
- libprotobuf 检查在 Mac OS 上执行程序时失败
- C++读取用户输入而不按回车键(Mac OS X),与Turbo Pascal中的读取键相同
- 如何在 MAC OS c/c++ 中阻止 USB 存储设备
- Mac os x app bundle 在下载并运行时崩溃,但在终端或更改 Info.plist 时运行良好
- const 如何防止写入特定内存 [Clang, Mac OS]
- 如何在 Mac OS 上安装 boost-mpi 及其对 clang 的依赖关系?
- 在 Mac OS 中将 QT 与 CMAKE 集成
- 从我的2d数组中的一列返回的字符串值被压缩为一个字符串(在Mac os上打开Windows txt文件)
- VK_ERROR_INCOMPATIBLE_DRIVER with Mac OS and Vulkan MoltenVK
- 我无法在C++(Clion,Mac OS)中运行Gurobi
- 如何在Mac OS的发布版本中包含Qt库?
- 如何将C++项目从 32 位迁移到 64 位以支持 MAC OS 10.14(莫哈韦)?
- 在 Mac OS x 中制造期间出现错误未知类型名称"constexpr"
- 无法在 Mac OS X 上链接静态资源库
- 在Mac OS X Mountain Lion(或更高版本)和Linux上使用X11/Xlib.h
- Mac OS c++ Link OpenCV and libtiff
- 使用 c++ 在 Mac OS X 上启动"new email"窗口
- 在 Mac OS 上运行 x11
- 为什么 Mac OS 指定的 TCP 端口不侦听?
- Mac OS X:应用程序可以创建日志文件