赞
踩
open :是UNIX(包括LINUX)系统调用的函数,返回的是文件描述符,简写(fd)。(windows下没有open)
fopen:只要是C语言就有这个函数。
fopen:是标准C语言库函数,具有良好的移植性。
open:是UNIX系统调用,移植性有限
open:操作网络套接字,硬件设备等,当然也可以操作普通正规文件
fopen:只能操作普通正规文件,例如:配置文件
fopen配合fread和fwrite来用。
open配合read和write来用。
(不能互相使用)。
open属于低级IO
fopen属于高级IO
用户空间调用open read write会“发送指令“给内核,让内核去访问文件(从用户态进入到内核态)
fopen fread fwrite,只在自己的缓冲区里面去做,对内核的依赖程度低一点。
1.缓冲区
fopen、fread、fwrite等都在缓冲区里操作
所用的内容都在缓冲区里面完成,最终一次性写入到文件。内存到外存的切换次数少,执行的速度快,效率高。
2.非缓冲区
open read write等
通过内核来操作文件,进行文件读写的时候,每次从用户态到内核态切换,执行的速度慢,效率低。(建议最好不要使用)
——@上官可编程
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。