xsl*_*xsl 48
使用realpath().
该
realpath()函数应从指向的路径名派生出file_name一个名称相同文件的绝对路径名,其分辨率不涉及.",..",或符号链接.生成的路径名应存储为{PATH_MAX}指向的缓冲区中以空字符结尾的字符串,最多为字节resolved_name.如果
resolved_name是空指针,则行为realpath()是实现定义的.
以下示例为symlinkpath参数标识的文件生成绝对路径名.生成的路径名存储在actualpath数组中.
#include <stdlib.h>
...
char *symlinkpath = "/tmp/symlink/file";
char actualpath [PATH_MAX+1];
char *ptr;
ptr = realpath(symlinkpath, actualpath);
Run Code Online (Sandbox Code Playgroud)
尝试realpath()一下stdlib.h
char filename[] = "../../../../data/000000.jpg";
char* path = realpath(filename, NULL);
if(path == NULL){
printf("cannot find file with name[%s]\n", filename);
} else{
printf("path[%s]\n", path);
free(path);
}
Run Code Online (Sandbox Code Playgroud)