曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5119|回复: 0
打印 上一主题 下一主题

流错误(stream error)

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2009-2-12 01:37:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
指示一个错误,许多 stdio 库函数返回超出范围(out-of-range)值,像 null指针或者常数 EOF。在这种情况下,错误是由外部变量 errno来指示:
#include <errno.h>
extern int errno;

注意:许多函数可能改变 errno 这个值。这个值也仅在函数失败时有效。你应该在一个函数指示失败后立即对它进行检查。你在使用它之前,应该将它拷贝到另一个变量中去,因为打印函数,如 fprintf ,可能它们自己都会改变 errno 。

相关函数
#include <stdio.h>
int ferror(FILE *stream);
int feof(FILE *stream);
void clearerr(FILE *stream);

ferror 函数测试错误指示符,如果错误指示符被设置,则返回非零值,否则返回 0 。

feof 函数测试 end-of-file (文件结束 EOF)指示符,如果被设置,就返回非零值,否则返回 0 。如下:
if( feof(some_stream) )  
  /*已经在文件末尾*/

clearerr 函数清除其参数 stream 指向流的 EOF 和错误指示符。此函数没有返回之和不定位错误指示。可以使用它从流错误中恢复过来。例如在一个“磁盘已满”的错误被解决后可以重新向流进行写。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-18 13:47 , Processed in 0.086395 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表