名称
fread, fwrite - 二进制流输入/输出
概要
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb,
FILE *stream);
说明
fread从stream指向的流读取nmemb个数据项,每个数据项的大小为size个字
节,存储到由ptr指定的位置。
fwrite往stream指向的流写入nmemb个数据项,每个数据项的大小为size个字节,
这些数据来自于ptr指定的位置。
关于非阻塞的实现,参考unlocked_stdio。
返回值
fread和fwrite如果成功则返回读或写的数据项的数量。只有当size为1时,返回
值才等于传输的字节数。如果出错,或者到达文件结尾,则返回值是一个比预期更
小的值(或者是0)。
fread不区分文件结尾跟出错,调用者必须使用feof和ferror来确定出现了哪种情
况。
线程安全特征
接口 | 特征 | 值 |
fopen(), fdopen(), freopen() | 线程安全 | 多线程安全 |
标准
遵循POSIX.1-2001, POSIX.1-2008, C89。
推荐阅读
read,write,feof,ferror,unlocked_stdio
版本记录
这个页面是Linux man-pages项目4.04版本的一部分。关于该项目的信息和bug报
道可以在该网站找到:http://www.kernel.org/doc/man-pages/。
2015-07-23