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