C是否有任何跨平台文件IO / path util库?

时间:2013-05-03 09:39:27

标签: c file-io path cross-platform

是否有一些C库实现了与平台无关的路径操作版本?

想到的一些例子:

  • 从相对路径获取绝对路径(不需要文件存在)
  • 确保目录存在。
  • 如果文件不存在,则创建一个文件,以及给定路径中缺少的任何目录。
  • 连接路径。
  • 获取路径的目录部分。
  • 让文件名成为路径的一部分。
  • 还有很多......

当然,这些平台特定版本,但他们几乎没有完全相同的事情导致混乱试图匹配跨平台的行为。

我的意思是C,而不是C ++,所以提升不计算在内。

此外,如果没有,平台之间是否有任何良好的差异/示例差异,以及可用于编写此类库的其他有用信息?

3 个答案:

答案 0 :(得分:2)

永远不错的glib family (part of GTK+)至少有一些。

请注意,您正在描述的某些功能(例如“从相对路径获取绝对路径”)假定存在当前目录,这通常是该分辨率的完成方式。它不是一个非常“纯粹”的功能,因为它依赖于外部状态。在Windows中,通过其“拆分文件系统”,每个卷甚至有一个当前目录(例如,一个用于C:\,一个用于A:\,如果你有,依此类推)每个进程。

答案 1 :(得分:0)

我发现Apache Portable Runtime Project (APR)不仅仅是文件I / O和路径操作。并且与Gnome等任何项目无关。

另一个具有可移植功能的项目,包含一个很好的API,CZMQ包含zfilezsys类,尽管图书馆本身专注于其他内容。

答案 2 :(得分:0)

我知道这是一个比较老的问题,但是我一直在寻找类似的东西,但找不到任何东西。所以我写了一个cwalkreference)-给仍然觉得有用的任何人! :-)