【发布时间】:2020-10-23 18:11:26
【问题描述】:
我看过很多类似的主题,我已经阅读了很多 readlink 和 realpath,但问题是我需要 pliksoft 的路径,而不是这个链接指向的位置。
例如:
我有符号链接:pliksoft->abc
结果应该是:
/users/staff/trl/am/SK/pliksoft
不是
/users/staff/trl/am/SK/abc
我这样做是这样的:
char buf[PATH_MAX], buf_2[PATH_MAX];
readlink(argv[1], buf, PATH_MAX);
realpath(buf, buf_2);
printf("%s\n", buf_2);
但这是一个糟糕的结果。
【问题讨论】:
-
如果你不想关注符号链接,为什么要使用
readlink? -
readlink用于跟踪符号链接并了解更多关于它们指向的内容。如果您不在乎,请不要遵循它,按原样使用它。 -
readlink()函数是反常的,不会终止结果字符串。设计师应该被悬挂,绘制和四分之一。注意返回值——它告诉你数据有多长。 -
所以如果我这样做,我会得到相同的结果:realpath(argv[1], buf_2)
-
您似乎需要将
getcwd()的结果与pliksoft的值结合起来才能得到您想要的结果。不过,我不确定如何概括。