首页 > 解决方案 > 符号链接的路径

问题描述

我正在开发一个在 linux 中打印有关文件信息的程序。我需要一种处理链接文件的方法(S_ISLNK(buf->st_mode)),以便程序打印符号链接的路径和它指向的文件。我已经想出了第二部分,但不知道如何做第一部分,虽然它看起来更容易。我以文件名作为参数运行程序,然后打印统计信息的函数将struct stat bufchar *fname作为参数。对于符号链接指向的文件的路径,我realpath(fname, NULL)在 printf 中用作 %s。我尝试使用 readlink 获取符号链接的路径,但获得了符号链接指向的文件的路径。最终代码应如下所示:

printf("Path: %s\n", *char array or function that stores the path*);

printf("Points to: %s\n", realpath(fname, NULL));

试过这个:

char path[512];
readlink(fname, path, sizeof(path));
printf("Path: %s\n", path);

有谁知道我会怎么做?任何帮助深表感谢。

标签: clinuxsymlink

解决方案


推荐阅读