fread与read的区别

fread和read分别是ANSI C标准库和UNIX系统调用。fread带有缓冲功能,通常比read更高效,尤其在处理小数据块时。然而,当读取大数据块时,read的性能可能略微优于fread。测试显示,随着每次读取数据量的增加,fread的性能优势逐渐减小。
摘要由CSDN通过智能技术生成

参考: http://blog.csdn.net/dreamtdp/article/details/7560654


1. fopen, fread, fwrite是ANSI C的标准库,open, read, write是UNIX下的系统调用(WINDOWS下分别为_open, _read, _write);

2. fread, fwrite带缓冲功能,底层也是通过read,write实现的;

例如: 如果文件大小是8k。 如果用read/write,且只分配了2k的缓存,则将此文件读出/写入需要做4次系统调用来实际操作磁盘读写;

如果用fread/fwrite,系统自动非配缓存,则读出/写入此文件只需要一次系统调用,效率比read/write要高4倍。

3. 由于f族函数是标准库的内容,因此更具移植性;

4. 测试代码:

#define _CRT_SECURE_NO_WARNINGS

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

#include <windows.h>
#include <fcntl.h>
#include <io.h>

const in
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值