当前位置:   article > 正文

open/read/write和fopen/fread/fwrite的区别_说说fopen,fread,fwrite和open,read,write有什么本质上的不同

说说fopen,fread,fwrite和open,read,write有什么本质上的不同

(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函数快。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/256421
推荐阅读
相关标签
  

闽ICP备14008679号