open/read/write和fopen/fread/fwrite的区别

来源:互联网 发布:网络安全技术与实践 编辑:程序博客网 时间:2024/05/01 13:08

答:

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

0 0
原创粉丝点击