讲解(open fopen) ( wirte fwrite)各自的区别

一、来源

open :是UNIX(包括LINUX)系统调用的函数,返回的是文件描述符,简写(fd)。(windows下没有open)
fopen:只要是C语言就有这个函数。

二、移植性

fopen:是标准C语言库函数,具有良好的移植性。
open:是UNIX系统调用,移植性有限

三、适用范围

open:操作网络套接字,硬件设备等,当然也可以操作普通正规文件
fopen:只能操作普通正规文件,例如:配置文件

fopen配合fread和fwrite来用。
open配合read和write来用。
(不能互相使用)。

四、文件的IO层次

open属于低级IO
fopen属于高级IO

用户空间调用open read write会“发送指令“给内核,让内核去访问文件(从用户态进入到内核态)

fopen fread fwrite,只在自己的缓冲区里面去做,对内核的依赖程度低一点。

五、缓冲

1.缓冲区
fopen、fread、fwrite等都在缓冲区里操作
所用的内容都在缓冲区里面完成,最终一次性写入到文件。内存到外存的切换次数少,执行的速度快,效率高。

2.非缓冲区
open read write等
通过内核来操作文件,进行文件读写的时候,每次从用户态到内核态切换,执行的速度慢,效率低。(建议最好不要使用)

——@上官可编程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值