我正在寻找一个 C 程序,给定符号链接的名称,它将打印链接指向的文件或目录的名称。关于如何开始的任何建议?
问问题
14008 次
4 回答
9
readlink()
已经提到的功能是答案的一部分。但是,您应该知道它可怕的界面(它不会终止响应字符串!)。
您可能还想查看该函数, SO 1563186realpath()
中讨论了该函数的使用。您还可以在IIUG 软件档案中查看“链接路径”的代码。它分析在解析符号链接时遇到的所有目录的安全性 - 它使用and and ; 测试程序时的一项检查是确保将名称解析为同一文件。readlink()
lstat()
stat()
realpath()
于 2009-10-14T23:01:07.387 回答
6
确保您有一个支持 POSIX 函数的环境,包括unistd.h
然后使用readlink函数。
于 2009-10-14T22:47:23.403 回答
1
取决于平台,stat()
或者fstat()
可能是首先要尝试的东西。如果您使用的是 Linux 或 cygwin,那么该stat
程序将让您对系统 API 调用的期望有一个合理的了解(它几乎为您提供了它的文本转储)。
于 2009-10-14T22:45:01.740 回答
0
您想要的系统调用是 readlink()。获取链接的路径,返回存储在链接中的字符串(并不总是文件系统中的有效路径!)。查看手册页(“man 2 readlink”)了解详细信息。
请注意,您的问题有些模棱两可。您可能会问如何分辨文件系统中的“真实”路径,这有点复杂。
于 2009-10-14T22:47:56.587 回答