如何查找给定文件是符号(软)链接或硬链接

时间:2014-02-13 13:31:26

标签: c linux operating-system symlink

使用c代码,我想知道给定的文件(如test.c)是否是符号链接。我试过stat()函数。 我正在查看

nlink_t   st_nlink;   /* number of hard links */

统计结构的成员。

struct stat stbuf;
stat("test.c", &stbuf)

stbuf.st_nlink在硬链接以及软链接中提供一个。

我做得对吗?或者是否有任何其他方法来检查给定文件是软链接还是硬链接。

1 个答案:

答案 0 :(得分:4)

不,您需要使用lstat()来检测文件是否为软链接。

另外,请确保您了解通常情况下,没有三种不同类型的文件:文件,文件的硬链接以及文件的软链接。相反,只有两个:文件和软链接的硬链接。您可能认为“文件”实际上也是一个硬链接,它通常只是单个链接。