赞
踩
(1)open/read/write是系统调用,而fopen/fread/fwrite是C语言标准库函数,后者是对前者的封装,后者的可移植性比较好。
(2)open/read/write是通过文件描述符对文件进行管理的,只能读取二进制文件或文本文件,而fopen/fread/fwrite是借助文件结构体指针FILE *来对文件进行管理,可以读写字符、字符串、格式化数据,也可以读写二进制数据。
(3)open/read/write和fopen/fread/fwrite最主要的区别在于fopen/fread/fwrite在用户态下就有了缓存,在进行读写时,减少了用户态和内核态的切换,而open/read/write则每次 都需要进行内核态和用户态的切换,其表现为:如果顺序访问文件,fopen/fread/fwrite函数要比直接调用open/read/write函数快,如果随机访问文件,open/read/write函数要比fopen/fread/fwrite函数快。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。