首页- 站长资讯 技术文章  Linux中open和fopen的区别有哪些

Linux中open和fopen的区别有哪些

 3  2022-05-01 00:33:00

区别:1、open是UNIX系统调用函数,而fopen是ANSIC标准中的C语言库函数;2、open的移植性没fopen好;3、fopen只能操纵普通正规文件,而open可以操作普通文件、网络套接字等;4、open无缓冲,fopen有缓冲。

 

linux系统:open与fopen的区别

1、来源

从来源的角度看,两者能很好的区分开,这也是两者最显而易见的区别:

open是UNIX系统调用函数(包括LINUX等),返回的是文件描述符(f'd),它是文件在文件描述符表里的索引;

fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api。返回的是一个指向文件结构的指针。

 

2、移植性

这一点从上面的来源就可以推断出来,`fopen`是C标准函数,因此拥有良好的移植性;而`open`是UNIX系统调用,移植性有限。如windows下相似的功能使用API函数`CreateFile`。

 

3、适用范围

open返回文件描述符,而文件描述符是UNIX系统下的一个重要概念,UNIX下的一切设备都是以文件的形式操作。如网络套接字、硬件设备等。当然包括操作普通正规文件(Regular File)。

fopen是用来操纵普通正规文件(Regular File)的。

 

4、文件IO层次

如果从文件IO的角度来看,前者属于低级IO函数,后者属于高级IO函数。低级和高级的简单区分标准是:谁离系统内核更近。低级文件IO运行在内核态,高级文件IO运行在用户态。

 

5、缓冲

缓冲文件系统

缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用;当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”,装满后再从内存“缓冲区”依此读出需要的数据。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存“缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大,则操作外存的次数就少,执行速度就快、效率高。一般来说,文件“缓冲区”的大小随机器 而定。fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等。

非缓冲文件系统

缓冲文件系统是借助文件结构体指针来对文件进行管理,通过文件指针来对文件进行访问,既可以读写字符、字符串、格式化数据,也可以读写二进制数据。非缓冲文件系统依赖于操作系统,通过操作系统的功能对文件进行读写,是系统级的输入输出,它不设文件结构体指针,只能读写二进制文件,但效率高、速度快,由于ANSI标准不再包括非缓冲文件系统,因此建议大家最好不要选择它。open, close, read, write, getc, getchar, putc, putchar等。

一句话总结一下,就是open无缓冲,fopen有缓冲。前者与readwrite等配合使用, 后者与fread,fwrite等配合使用。

使用fopen函数,由于在用户态下就有了缓冲,因此进行文件读写操作的时候就减少了用户态和内核态的切换(切换到内核态调用还是需要调用系统调用API:readwrite);

而使用open函数,在文件读写时则每次都需要进行内核态和用户态的切换;

表现为,如果顺序访问文件,fopen系列的函数要比直接调用open系列的函数快;如果随机访问文件则相反。

相关说明:

1、VIP会员无限制任意下载,免积分。 立即前往开通>>

2、本站资源大多存储在云盘,如出现链接失效请评论反馈。

3、本站提供的源码、模板、软件工具等其他资源,均不包含技术服务,请大家谅解!资源仅供参考学习只用,请勿用于任何商业用途,请支持正版。

4、源码、模板等资源会随着技术、坏境的升级而存在部分问题,还请慎重选择。


本文网址:http://www.zzdaima.com/art/41.html
转载请声明来自: 站长代码- Linux中open和fopen的区别有哪些

教程搜索
热门技术文章
  • pbootcms伪静态教程

    pbootcms伪静态教程

    Apache环境和IIS环境默认在根目录加了伪静态规则了,不需要操作,只要主机支持伪静态即可。 Nginx环境,请打开nginx.txt文件,把里面的代码复制到配置中,下面我们以宝塔为例, 伪静态规则的文件在 这样就完成了

  • 关于域名历史的查询和处理

    关于域名历史的查询和处理

    一、域名历史是什么意思?域名历史,是指域名首次注册的时间、域名持有者更新、域名网站所属行业变更、域名是否被降权或K站、域名历史PR值、域名历史的外链建设情况、域名年龄等等。二、域名历史对SEO有影响因素马慧SEO简单列出几点域名历史对网站优化的影响:①域名历史是否

  • 网站建设这些东西我们需要设置好

    网站建设这些东西我们需要设置好

    一、建站的需求及目的建站的目的时什么,需求又是什么,依据自己的需求及行业的对比,大概做出一个小的预算。通常情况下,若作为单一的企业网站,建站费用不高,若需要定制开发的话,定制开发所需要的费用肯定比一般的企业网站要高,网站定制开发流程:沟通确定需求-出设计效

  • 怎么样才能写出打动读者的文案

    怎么样才能写出打动读者的文案

    第一,标题要准确简洁一篇高质量的文章内容,首先必须要有一个简洁明确的题目标题,能够让读者一下就可以抓住你要表达的文章意思。而有些SEO优化人员,为了图省事,往往采用采集文章的方式更新内容,但又考虑到雷同性太高,于是就随便更换一个文章标题了事。这样做的后果就是

  • 寻找合适的关键词给网站创收

    寻找合适的关键词给网站创收

    选择垂直行业领域关键词大家在选择关键词的时候,记住一定不能太宽泛,因为我们是个人站长,不可能投入那么多的人力物力去经营一个有大量内容的网站,如果网站主体太广,我们是根本没有精力去管理的,那么排名自然也是无法上来的,这里如风SEO强烈建议大家一定要找准一个垂直

  • 可能被我们忽视的影响排名因素

    可能被我们忽视的影响排名因素

    一、质量高的原创内容在这个越来越注重内容的时代,各位站长要想在百度、360等搜索引擎获得不菲的流量,那必须注重网站内容的原创性。独特的实质性的并且是高质量的原创内容,极大的影响着网站的收录和排名。现下正火热的熊掌号就是百度针对原创内容的一次尝试,高质量的原创

热门推荐

SEO按天关键词计费排名查询系统...

热门推荐  80    2022-05-01 08:02:08

软件功能:1.会员管理:系统共分三级会员流程。总站管理员,代理,...

仿清风DJ舞曲网V4.1+CSCMS音乐...

热门推荐  70    2022-05-01 07:54:10

CSCMSV4.1仿清风dj舞曲网音乐网站源码,程序是CSCMSV4.1UTF8编码...

爱看小说网2W本源码全站打包源...

热门推荐  81    2022-05-01 07:50:03

本次给大家带来的是价值500元的狂雨小说二开版上传源码解压后/co...

APP软件应用下载导航网站源码/...

热门推荐  85    2022-05-01 07:38:50

APP软件应用下载导航网站源码/APP分享下载页引流导航网站源码带后...

健身类小程序前后端源码

热门推荐  134    2022-04-24 15:40:08

健身类小程序前后端源码环境要求:PHP>=7.0(推荐7.2+)Laravel5...

抖音云蹦迪源码 2022年很火的直...

热门推荐  265    2022-04-18 21:17:36

外面卖600的抖音云蹦迪直播间项目,靠直播打赏收益的风口项目分享...


关于我们 联系我们 免责声明 共享规则 SiteMap 站长代码所有作品均为会员提供或网上搜集,版权归原作者所有,如需商业用途或转载请与原作者联系

Copyright © 2022  站长代码版权所有 辽ICP备2021012267号-1 辽公网安备 21012202000096号 所提供的内容仅供观摩学习交流之用,请勿用作商业用途!如有侵权,请及时 联系我们删除

第三方账号一键登录