当前位置:  开发笔记 > 编程语言 > 正文

获取文件的绝对路径

如何解决《获取文件的绝对路径》经验,为你挑选了1个好方法。

如何在Unix上将相对路径转换为C中的绝对路径?这有一个方便的系统功能吗?

在Windows上有一个GetFullPathName功能可以完成这项工作,但我在Unix上找不到类似的东西......



1> xsl..:

使用realpath().

realpath()函数应从指向的路径名派生出 file_name一个名称相同文件的绝对路径名,其分辨率不涉及.",..",或符号链接.生成的路径名应存储为{PATH_MAX} 指向的缓冲区中以空字符结尾的字符串,最多为字节 resolved_name.

如果resolved_name是空指针,则行为realpath()是实现定义的.


以下示例为symlinkpath参数标识的文件生成绝对路径名.生成的路径名存储在actualpath数组中.

#include 
...
char *symlinkpath = "/tmp/symlink/file";
char actualpath [PATH_MAX+1];
char *ptr;


ptr = realpath(symlinkpath, actualpath);


"加一"不是必需的,因为它不会造成任何伤害.
实际路径包含绝对路径,但ptr包含什么?
Windows上的`GetFullPathName`也适用于不存在的文件.`realpath`需要存在的路径.当您想要创建路径或文件时,这种情况很糟糕.
推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有