【发布时间】:2012-03-05 12:06:41
【问题描述】:
我正在使用 statfs 检索硬盘上的可用总空间。它大多数时候返回正确的值,但有时它只是无缘无故地返回错误。我想知道为什么它会在看似随机的时间产生错误。
有没有办法检查它为什么会产生错误?如果我打印strerror(errno),我只会收到消息“没有这样的文件或目录”。这告诉我问题是什么,但不是导致它的原因。我看不出它能够在某个时刻成功找到目录但在下一刻无法找到它的任何原因。有什么办法可以检查是什么原因造成的?我怀疑这是否是我的代码有问题,因为如果是这种情况,if 将永远不会返回正确的数据。
我传入'/'作为目录。我在 OS X Snowleopard 上使用 Xcode 3.2.6 使用 Objective-C/C
- 我怎样才能找到导致它找不到的问题 小路?
- 有哪些一般原因会导致它能够在某一时刻而不是下一个时刻找到驱动器?
用于检索信息的代码:
if (statfs(&path, &storageStats))
{
NSLog(@"Total storage stats retrieval failed with errno: %s.\n", strerror(errno));
exit(EXIT_FAILURE);
}
else
{
totalAmount = storageStats.f_blocks * storageStats.f_bsize;
NSLog(@"Storage: %f\n", totalAmount);
return self;
}
我收到“总存储统计信息检索失败...”并且错误消息是“没有这样的文件或目录”
【问题讨论】:
-
您如何确定
statfs“返回错误”?给我们看一个代码 sn-p。 -
@R.. 我将代码添加到我的问题中。
标签: objective-c c macos unix hardware