赞
踩
少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。——刘向
从来源的角度很好区分俩种的差别
open是UNIX系统调用函数(Linux等),返回的是文件描述符,在文件中起到索引的作用。
fopen是ANSIC标准的C语言库函数,在不同系统中应该调用不同的内核api.返回的是一个指向文件结构的指针
fopen是C标准库函数,因此拥有良好的移植性;而open是UNIX系统调用,移植性有限。如在window下相似的功能使用API函数CreateFile。
1.缓冲文件系统
使用“fopen fclose fread fputs”等函数的时候会在内存开辟一个缓冲区
,先将磁盘文件读取到缓冲区中,装满之后内存在缓冲区进行数据的读取,写文件时也是类似要经过缓冲区执行;因此执行速度就和缓冲区大小相关,缓冲区大操作外存次数就少,速度就快、效率就高。一般来说文件缓冲区的大小有机器决定
2.非缓冲的文件系统
非缓冲的文件系统依赖于操作系统,通过系统的功能对文件进行读写,只能写二进制文件,因此效率高,速度快。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。