名称
clearerr, feof, ferror, fileno - 检查和复位流的状态
概要
#include <stdio.h>
void clearerr(FILE *stream);
int feof(FILE *stream);
int ferror(FILE *stream);
int fileno(FILE *stream);
对于glibc来说要有功能测试宏才能使用(参考feature_test_macros):
fileno(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE
说明
clearerr清除流的EOF标志和错误标志。
feof测试流的EOF标志,如果标志被置位则返回非零值。EOF标志只能由clearerr
清除。
ferror测试流的错误标志,如果标志被置位则返回非零值。错误标志只能由clearerr
清除。
fileno检查参数的有效性并返回流的整型描述符。
关于非阻塞的实现,参考unlocked_stdio。
错误码
这些函数不应该失败而且它们不改变外部变量errno的值。(然而,当fileno检测
到一个非法的流时,它会返回-1并且设置errno为EBADF。)
线程安全特征
接口 | 特征 | 值 |
clearerr(), feof(), ferror(), fileno() | 线程安全 | 多线程安全 |
标准
函数clearerr(), feof(), ferror()遵循C89,C99,POSIX.1-2001和POSIX.1-2008。
函数fileno()遵循POSIX.1-2001和POSIX.1-2008。
推荐阅读
open,fdopen,stdio,unlocked_stdio
版本记录
这个页面是Linux man-pages项目4.04版本的一部分。关于该项目的信息和bug报
道可以在该网站找到:http://www.kernel.org/doc/man-pages/。
2015-08-08