我基本上必须为一个类写一个UNIX ls命令的克隆,而且几乎所有东西都在工作。我似乎无法弄清楚如何做的一件事是检查文件是否是符号链接。在stat()
的{{3}}页面中,我看到定义了mode_t
个值,S_IFLNK
。
这就是我试图检查文件是否是sym-link的方法,但没有运气(注意,stbuf是stat()
将inode数据返回的缓冲区):
switch(stbuf.st_mode & S_IFMT){
case S_IFLNK:
printf("this is a link\n");
break;
case S_IFREG:
printf("this is not a link\n");
break;
}
我的代码总是打印this is not a link
即使它是,并且我知道所述文件是符号链接,因为实际的ls命令是这样说的,而且我创建了sym-link ... < / p>
有人能发现我可能做错了吗?谢谢你的帮助!