3

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

想到的一些例子:

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

这些当然有特定于平台的版本,但它们几乎不会做完全相同的事情,从而导致试图匹配跨平台行为的混乱。

我的意思是 C,而不是 C++,所以 boost 不算数。

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

4

3 回答 3

3

我知道这是一个相当古老的问题,但我一直在寻找类似的东西,但找不到任何东西。所以我写了一个,cwalk参考)——给那些仍然觉得它有用的人!:-)

于 2018-09-03T21:13:28.133 回答
2

非常棒的glib 家族(GTK+ 的一部分)至少有一些。

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

于 2013-05-03T10:05:06.287 回答
0

我发现了Apache Portable Runtime Project (APR),它不仅仅做文件 I/O 和路径操作。并且不依赖于像 Gnome 这样的任何项目。

另一个具有良好 API 的可移植函数的项目是带有 zfile 和 zsys 类的CZMQ尽管库本身专注于其他事情。

于 2014-09-25T20:40:20.097 回答