C 如何区分常规文件和符号链接?

C 如何区分常规文件和符号链接?,c,linux,posix,symlink,C,Linux,Posix,Symlink,我在linux中使用C posix处理符号链接 我检测到一个文件,我必须区分普通文件和符号链接 现在我做下一步: if(S_ISREG(直接信息模式)){ //处理常规文件 } 否则如果(S_ISLNK(直接信息存储模式)){ //处理符号链接 } 问题是,当文件是一个符号链接时,执行流在第一个if输入。也就是说,符号链接何时也进入S_ISREG状态。那么,如何区分这两种模式呢?您可能正在使用stat()获取文件模式stat()实际上返回有关目标的信息,而不是链接本身。 因此,为了获得有关链接

我在linux中使用C posix处理符号链接

我检测到一个文件,我必须区分普通文件和符号链接

现在我做下一步:

if(S_ISREG(直接信息模式)){
//处理常规文件
}
否则如果(S_ISLNK(直接信息存储模式)){
//处理符号链接
}

问题是,当文件是一个符号链接时,执行流在第一个if输入。也就是说,符号链接何时也进入
S_ISREG
状态。那么,如何区分这两种模式呢?

您可能正在使用
stat()
获取文件模式
stat()
实际上返回有关目标的信息,而不是链接本身。
因此,为了获得有关链接本身的信息,您需要使用。

首先检查它是否是链接。您是如何获得
direct\u info