当前位置: 首页 > news >正文

小游戏链接网站seo文章该怎么写

小游戏链接,网站seo文章该怎么写,app定做开发公司,网页及网站建设用什么软件一、I/O缓存的背景 I/O缓存是指在内存里开辟一块区域#xff0c;存放用来接收用户输入和用于计算机输出的数据#xff0c;以减小系统开销和提高外设效率。linux对IO文件的操作分为不带缓存的IO操作和带缓存的IO操作#xff08;标准IO操作#xff09;。为什么存在C标准I/O库…一、I/O缓存的背景 I/O缓存是指在内存里开辟一块区域存放用来接收用户输入和用于计算机输出的数据以减小系统开销和提高外设效率。linux对IO文件的操作分为不带缓存的IO操作和带缓存的IO操作标准IO操作。为什么存在C标准I/O库函数与Unbuffered I/O函数它们有什么区别? 二、带缓存的I/O操作 ​带缓存IO标准IO不依赖系统内核所以移植性强使用标准IO操作为了减少对read()和write()的系统调用次数带缓存IO其实就是在用户层再建立一个缓存区这个缓存区的分配和优化长度等其他细节都是标准IO库代你处理好了。系统调用如图所示 比如要写数据到文件上内核缓存区长度是100字节我们调用不带缓存的IO函数write()就要调用10次这样系统效率低。 现在我们在用户层建立另一个缓存区用户层缓存区或者叫流缓存假设流缓存的长度是50字节我们用标准C库函数的fwrite()将数据写入到这个流缓存区里面流缓存区满50字节后在进入内核缓存区此时再调用系统函数write()将数据写入到文件实质是磁盘上标准IO操作fwrite()最后还是要掉用无缓存IO操作write,这里进行了两次调用fwrite()写100字节也就是进行两次系统调用write()函数。 ​ 无缓存IO操作数据流向路径数据——内核缓存区——磁盘 ​ 标准IO操作数据流向路径数据——流缓存区——内核缓存区——磁盘 ​ 标准I/O对每个I/O流自动进行缓存管理标准I/O函数通常调用malloc来分配缓存。它提供了三种类型的缓存 ​ 1) 全缓存缓存满时I/O操作。磁盘上的文件通常是全缓存的。 ​ 2行缓存。当输入输出遇到新行符或缓存满时.stdin、stdout通常是行缓存的。 ​ 3)无缓存。相当于read、write了。stderr通常是无缓存的 三、无缓存I/OUnbuffered I/O函数 刚看到这个unbuffered读者就觉得奇怪操作系统不是对所有的输入输出都会做缓存吗(delayed write)为什么还会存在unbuffered? 其实这里的ubuffered是指的是针对与read和write本身来说它们是没有缓存机制比如read(fd,temp,100),在读够100个字节后或者遇到文件EOF后就返回非常单纯。而C标准库函数中的fread和fwrite就是利用缓存技术来调用read和write可以说是buffered I/O。 但是叫做无缓存IO是因为在用户层没有缓存但对于Linux内核来说还是进行了缓存只是用户层看不到罢了。 这些不带缓存的I/O函数不是标准 C的组成部分但是它们是POSIX.1和Single UNIX Specification的组成 部分。C标准库函数是C标准的一部分而Unbuffered I/O函数是UNIX标准的一部分。只有在UNXI平台上才能用Unbuffered I/O函数,windows上不行。所以C标准I/O库函数在头文件stdio.h中声明而read、 write等函数在头文件unistd.h中声明。   四、两种I/O函数使用场景 open、read、write、close等系统函数称为无缓冲I/OUnbuffered I/O函数用户程序在读写文件时既可以调用C标准I/O库函数,也可以直接调用底层的Unbuffered I/O函数那个各自使用场景是什么呢 用Unbuffered I/O函数每次读写都要进内核调一个系统调用比调一个用户空间的函数要慢很多所以在用户程序开辟I/O缓冲区还是必要的用C标准I/O库函数比较方便省去自己开辟内存空间。用C标准I/O库函数要时刻注意I/O缓冲区和实际文件有可能不一致在必要时调用fflush(3)。UNIX的传统是Everything is a fileI/O函数不仅可以读写文件还可以读写设备。在读写设备时通常是不希望有缓冲的。比如网络设置的读写就希望是实时读写而不希望只写到缓冲区里所以网络编程通常直接调用Unbuffered I/O函数。   五、磁盘交互的读写文件流程 当应用程序尝试读取磁盘上的某块数据的时候如果这块数据已经存放在页缓存内核高速缓存中那么这块数据就可以立即返回给应用程序而不需要经过实际的物理读盘操作。当然如果数据在应用程序读取之前并未被存放在页缓存中那么就需要先将数据从磁盘读到页缓存中去。 对于写操作来说应用程序也会将数据先写到页缓存中去这里所说的写到页缓存中如果是调用标准库I/O进行写那么首先是写到标准库的缓冲区内如果标准库的缓冲区写满以后在写到页缓冲内如果是系统调用那么直接写到页缓冲内。 数据是否被立即写到磁盘上去取决于应用程序所采用的写操作机制如果用户采用的是同步写机制,那么数据会立即被写回到磁盘上应用程序会一直等到数据被写完为止如果用户采用的是延迟写机制那么应用程序就完全不需要等到数据全部被 写回到磁盘数据只要被写到页缓存中去就可以了。 在延迟写机制的情况下操作系统会定期地将放在页缓存中的数据刷到磁盘上。与异步写机制不同的是延迟写机制在数据完全写到磁盘上得时候不会通知应用程序而异步写机制在数据完全写到磁盘上得时候是会返回给应用程序的。所以延迟写机制本省是存在数据丢失的风险的而异步写机制则不会有这方面的担心。 参考 带缓冲I/O 和不带缓冲I/O的区别与联系-CSDN博客 理解标准I/O库的缓冲机制及应用-CSDN博客 unix系统编程小结(一)------文件I/O-neilhappy-ChinaUnix博客
http://www.w-s-a.com/news/416174/

相关文章:

  • 做哪种网站赚钱苏州住房城乡建设部网站
  • 镇江做网站学编程学哪一种比较好
  • 华美天一建筑公司网站赚钱做任务的网站有哪些
  • asp网站打开速度慢家乡网页设计教程
  • 网站 设计 深圳书店网站的建设
  • 北京网络营销推广培训哪家好南宁软件优化网站建设
  • flash网站引导页仓库管理系统源码
  • 济南网站制作公司排名营销型网站管理系统
  • 公司网站设计要多少钱用什么做网站的访问量统计
  • 湖北省住房和城乡建设厅门户网站沈阳网络平台推广公司
  • 河南平台网站建设公司网站如何提高转化率
  • 网站及推广wordpress 分享主题
  • 房产网站有哪些如何自己建一个微网站
  • 青岛市黄岛区城市建设局网站手机域名访问网站怎么进入
  • 网站模板 双语河南省建设人才信息网官网
  • 网站建设备案优化之看邹城网站开发
  • 网站方案书图书馆网站建设公司
  • 公司取名网免费版在线网站优化公司
  • dw怎么做秋季运动会网站九江集团网站建设
  • 响应式网站建设服务商wordpress 非小工具形式 微博秀
  • 网站安全检测漏洞扫描风险等级分布建设一个网站步骤
  • 摄影网站的意义开发企业小程序公司
  • 龙岩网站设计招聘信息网上免费logo设计
  • 高端定制网站开发建站教程详解网站共享备案可以申请支付接口
  • 做房产网站接不到电话企业推广宣传方式
  • 网站建设费用不用摊销下一页p30
  • 北京 工业网站建设公司国外服务器公司有哪些
  • 怎样局域网站建设盈利网站
  • 公司做网站广告语济南建网站价格消费品展
  • 建德网站网站建设规划设计书