- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我使用 cstdio 在 linux 上编写了一个 C++ 应用程序。它包含一个函数,该函数应该用随机数据覆盖整个设备。它被赋予一个文件名,在内存中创建随机数据 block ,并使用 fwrite() 将它们一个接一个地写入文件。如果设备已满,函数应该返回。如果有不同的写错误,应该抛出异常。因此,当发生错误时,我会询问 ferror() 并想识别这是否是“磁盘已满”——一个不同的错误。我希望在磁盘已满时获得 ENOSPC。但是该函数写入磁盘,当磁盘已满时,ferror() 返回的值为 1(即 EPERM)。另一方面,perror 打印出正确的“设备上没有剩余空间”。这是我的 C++ 库中的错误吗?或者 EPERM 是正确的错误代码吗?如果是正确的错误代码,EPERM 是否仅在磁盘已满时才返回,因此适合识别此特定错误?
最佳答案
ferror
仅告诉您流中是否存在错误。要查看实际错误是什么,您必须检查 errno
。
perror
检查 errno
,这就是它打印正确错误消息的原因。
关于c++ - 为什么 ferror() 在设备上没有剩余空间时返回 EPERM - 我希望 ENOSPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7042161/
::ferror(FILE *) 的行为是什么?和 std::ferror(FILE *)何时传递无效指针? C++ 标准仅指 C(参见 draft)。但是在 C 标准中没有提及 ferror关于无效
此示例中的 ferror 检查是检查两个 fprintf 是否有错误,还是只检查第二个? FILE * myout; if ((myout = fopen("Assignment 11.txt", "
我正在尝试生成多个线程,并为每个线程写入不同的文件(线程 1 写入文件 1,等等)。但是,在设置线程执行 ferror() 后,阻止我在主进程中执行进一步的文件操作。我尝试清除错误,但没有解决。这是我
如何获取 int ferror(FILE*) 返回的错误代码消息?对于 errno,有 char * strerror(int)。 ferror 返回的代码是什么?如果 char * strerror
一些从流中读取和写入的操作可能会在流中设置错误标志,可以使用 ferror(stream) 进行测试,而我很确定这一定是一个常见问题,我无法在 SO 或一般网络中找到所有可能的错误原因列表。什么会导致
哪些事件会导致 ferror() 返回非零值?在哪些事件发生后应该检查 ferror()? http://www.cplusplus.com/reference/cstdio/ferror/ 打开、阅
为什么下面的代码会出现段错误? #include #include int main() { FILE *file; file = fopen("text","r"); i
在标准 C 中,您如何可靠地检查写入标准 I/O 流的所有输出是否已成功保存到磁盘? C 标准规定 fclose成功时将返回 0,如果“检测到任何错误”,则返回 EOF。 但这是否意味着“在 fclo
我目前正在尝试将代码从使用 C 风格的 FILE* 解析文件移植到 C++ 风格的 istringstream。我的程序并行运行,我想 1) 仅在第一个 CPU 上读取文件,2) 将字符串形式的内容广
我有一个 iOS 项目,它使用了一些在编译时抛出大量警告的 CocoaPods。 在我的 Podfile 中,我有 inhibit_all_warnings! 防止警告出现在 Xcode build
我正在尝试检查 fread() 何时引发错误,因此我使用 ferror()。 chunk = fread(buf, 1, 100, file); if (ferror(file)) { r
所以我正在阅读一本关于用 C 编写 shell 的书,我想尝试用 C++ 编写它。我遇到了以下代码: for( ; ; ) { if (fputs(PROMPT, stdout) == EOF
我使用 cstdio 在 linux 上编写了一个 C++ 应用程序。它包含一个函数,该函数应该用随机数据覆盖整个设备。它被赋予一个文件名,在内存中创建随机数据 block ,并使用 fwrite()
一个简单的问题,我对答案有 99.99% 的把握,但寻求一些反馈,以便我对自己的理解有 100% 的信心。当fputc返回 EOF它只是在流错误正确吗?例如,假设我有一个非常小的空间要写入,并且已
我一直在学习如何制作我自己的 shell 的教程,但我已经被困了几天了。 两件事: 这段代码编译运行时,会随机出现段错误,我也想不通原因。 if 语句 `if (ferror != 0)` 似乎总是正
这个问题在这里已经有了答案: Is it possible to distinguish the error returned by fgets (2 个答案) 关闭 2 年前。 我写了这个 min
我是一名优秀的程序员,十分优秀!