使用stat查找文件长度时检错

时间:2011-07-03 04:25:13

标签: c linux stat

此问题仅供参考How can I get a file's size in C?

大多数答案建议使用函数stat来获取文件长度,还附带一个标记来进行错误检查。

我们在这需要什么样的错误检查?

感谢。

2 个答案:

答案 0 :(得分:3)

与许多Unix / POSIX API函数一样,stat(2)在失败时返回负整数。不幸的是,对于stat,这个整数总是-1。因此,您需要检查errno global variable(在<errno.h>中定义)以查看确切的错误。

Ben has listed您可能遇到的一些错误; stat manpage

中列出了这些错误和其他错误的错误代码

答案 1 :(得分:2)

  • 文件可能不存在
  • 您可能无权访问其元数据
  • 网络安装点可能无法访问,或者可能存在其他一些读取错误
  • 它可能是一个没有大小的特殊文件(例如,设备节点,或者fifo)