如何在Unix上将相对路径转换为C中的绝对路径?这有一个方便的系统功能吗?
在Windows上有一个GetFullPathName功能可以完成这项工作,但我在Unix上找不到类似的东西......
我想编写一个单元测试来检查两个文件路径是否相同,但我不想假设字符串表示是相同的.
例如,在Linux上,一个案例中的路径中可能存在符号链接,而另一个案例中则不存在符号链接.在Windows上,一个(X:\foo)上可以有驱动器表示法,另一个()上可以有网络符号//serverX/foo.最复杂的是,该文件可能已在Linux上以NFS共享(/path/to/file语法)编写,并在Windows上使用DOS语法验证(X:\to\file)其中X:是NFS挂载/path.
一些想法(在Stack Overflow上找到,但不统一):
statrealpath(这个平台独立吗?)GetFullPathNameGetFileInformationByHandle什么是跨平台的最佳解决方案?我用C++写这个,但我可以明显地下降到C.