使用stat和lstat检测与文件相关的错误

时间:2014-12-08 19:18:20

标签: c++ c unix system-calls

以下程序使用lstat和stat来获取文件信息。 该程序的主要目的是找到一个在参数中传递的文件的特定问题。

但是,我无法使用此程序可以检测到的文件来识别哪个特定问题

程序:

#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include<stdio.h>
#include<err.h>
int main(int argc, char *argv[])
{
 argv++;
while(*argv)
{
  struct stat sbuf;
  if(lstat(*argv,&sbuf)==0)
     {
        if(sbuf.st_mode & S_IFLNK)
         {
            if(stat(*argv, &sbuf)!=0)
              {
                 warn("%s has a problem", *argv);
               }
           }
     }
 argv++;
}

}

1 个答案:

答案 0 :(得分:2)

lstat获取有关链接的文件信息 stat获取有关文件的文件信息。

如果传递的文件名是链接,但该文件不存在,则会warn