c++ - 在C程序中抽象文件系统的方法

标签 c++ c filesystems abstraction

我正在用 SDL 启动一个程序,它显然需要为文件系统加载资源。 我希望程序中的文件调用独立于平台。我最初的想法是定义一个基于系统类型在预处理器中定义的宏(我们称它为 PTH 路径),然后在使用它的程序中进行文件调用。 例如

SDL_LoadBMP(PTH("data","images","filename"));

将简单地转换为与文件系统相关的内容。

如果宏是执行此操作的可接受方式,那么此类宏会是什么样子(我如何检查正在使用的系统,在宏中连接字符串?)

如果不是,那么公认的做法是什么?

最佳答案

Boost Filesystem module可能是你最好的选择。它覆盖了路径上的“/”运算符,因此您可以执行诸如...

ifstream file2( arg_path / "foo" / "bar" );

关于c++ - 在C程序中抽象文件系统的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6509617/

相关文章:

java - 如何使用 Java 获取特殊系统目录的路径

C++:动态创建以for循环迭代器命名的数组

c - 有趣的 2 次幂 - 算法/数学(来自 Hackerrank ACM APC)

ios - ./configure 参数为 iOS 构建 C 库

ios - 如果目录不存在,是否有更安全的方法来创建目录?

c# - 你调用的对象是空的?

c++ - Qt 应用程序中与 Qt 版本相关的运行时错误

c++ - 目标文件中未解析的外部符号

c++ - 双重删除数据不会崩溃

c - 如何从(文本数据 bss dec hex)估计 RAM ROM 使用情况