【问题标题】:How do I know why stat failed?我怎么知道为什么统计失败?
【发布时间】:2014-03-01 18:51:25
【问题描述】:

我想知道文件是否存在于 C 中。

我看到我可以通过这个函数做到这一点:

int file_exist (char *filename)
{
  struct stat   buffer;   
  return (stat (filename, &buffer) == 0);
}

但如果文件存在,stat 也可能失败,但还有一些其他错误(然后我会得到负数)。我怎么知道 stat 因为文件不存在而失败?

【问题讨论】:

    标签: c file struct


    【解决方案1】:

    至少在 UNIX 系统中,有一个名为 errno 的变量可以得到你得到的确切错误。对照 EFAULT 检查它。 (有关man 2 statman errno 的更多详细信息)。

    检查是这样的:

    if (stat(path) == -1)
        if (errno == EFAULT)
            //file does not exist
        else
            //some other error occurred 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      • 2014-04-08
      • 2020-01-04
      • 1970-01-01
      • 2014-04-13
      • 2014-05-25
      • 1970-01-01
      相关资源
      最近更新 更多