对符号链接本身充满好奇,想查看下符号链接本身存储的内容,自个儿用C语言写了一个,分享给大家。
在linux下,用vim,less,cat等读取文件内容的命令来查看符号链接内容,最终都会被导向到实际链接的文件。
编译执行这个程序,最终查看到符号链接本身存储内容就是链接文件的路径。
例如:/home/test链接到/home/test.txt,符号链接/home/test存储的内容就是:”/home/test.txt“。
附-作者修改后的最新文章内容:2013-1-6
#------------------------------------------
在linux下,用vim,less,cat等读取文件内容的命令来查看符号链接内容,最终都会被导向到实际链接的文件。笔者对符号链接本身充满好奇,想查看下符号链接本身存储的内容,网上搜索了很久,没有找到相关的方法,于是自个儿用C语言写了一个,分享给大家。
#include
#include
int main(void)
{
//符号链接的路径
char sln[] = "./test";
char buf[1024];
ssize_t len;
if ((len = readlink(sln, buf, 1024 - 1)) != -1) {
buf[len] = ' ';
}
printf("%sn", buf);
return 0;
}
在笔者电脑上编译执行这个程序,最终查看到符号链接本身存储内容就是链接文件的路径。例如:/home/test链接到/home/test.txt,符号链接/home/test存储的内容就是”/home/test.txt“。
补充说明
后来笔者在工作中,偶然发现readlink这个命令也可以读取符号链接本身的内容: