Linux系统编程:验证kernel内核缓存区大小->4096字节

李四老师 于 2018-04-04 00:40:04 发布 2778 收藏 2

分类专栏: 【Linux编程】 【C/C++编程】 文章标签: Linux系统编程 read/write函数 dup2函数 kernel内核缓存区大小
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_29542611/article/details/79811223

版权

【Linux编程】 同时被 2 个专栏收录
18 篇文章 0 订阅
订阅专栏

【C/C++编程】
143 篇文章 7 订阅
订阅专栏

使用的API

read/write函数 常常被称为Unbuffered IO。指的是无用户缓存区。但不保证不使用内核缓存区。我们可以用来验证内核缓存区的大小是不是4096字节。这里我们还用一个系统函数 dup2 文件描述符重定向函数,来实现 从终端输入 直接输出到文件中。

验证内核缓存区大小

思路很简单,就是测试4096这个临界点

首先往文件中写4096个字节,查看数据是否写入到磁盘文件,从终端读入数据,缓存区4096数据是否写到磁盘文件

代码

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <unistd.h>
  4. #include <fcntl.h>
  5. int main(void)
  6. {
  7. int fd = open("temp.txt",O_RDWR|O_CREAT|O_TRUNC,0664);
  8. char temp[1024]={0};
  9. dup2(fd,STDOUT_FILENO);
  10. //文件重定向后,往终端输出的数据,会写入的文件中
  11. //先写4096B试试,看看能写入磁盘不
  12. for(int i = 0; i < 4096;i++)
  13. {
  14. printf("%c",48);
  15. }
  16. //kernel缓存区大小为4096!写到4097字节,缓冲区溢出才会将缓冲区内容写道磁盘文件,
  17. //缓存区继续放数据
  18. while(1)
  19. {
  20. //读取终端数据
  21. read(STDIN_FILENO,temp,sizeof(temp));
  22. if(strncmp(temp,"exit",4)==0)
  23. break;
  24. printf("%s\n",temp);
  25. }
  26. close(fd);
  27. return 0;
  28. }

启动程序查看文件数据

程序启动,写入4096字节,但是文件数据却没有

终端写入数据并查看

退出程序及验证结果

验证结果,写到4097个字节,内核缓存区要溢出了,才将缓冲区内容写到磁盘中去,再将数据写到内核缓存区,等待下一次缓存区满或者文件关闭 才会将缓存区内容写到磁盘

</article>

http://www.taodudu.cc/news/show-6492009.html

相关文章:

  • python 冒险游戏_Python中冒险游戏的While循环
  • 幻影追逐者服务器维护,《幻影追逐者》游戏特色曝光 开启与邪恶争斗冒险之旅...
  • 《光明传说》主城建筑图文详解の冒险者商店
  • 冒险者传说pc6java安装_目标是传说级冒险者
  • 元音音频时域波形与频谱的简洁分析
  • Phonetic symbol 单元音 - 短元音 -- ə
  • Nuxt服务端请求及获取Cookie
  • Drools入门案例(3/6)
  • 规则引擎—Drools 语法第一天[学习笔记]
  • Neo4j:BBC冠军联赛图表
  • IDF-CTF-天罗地网
  • 语法基础
  • ES6+JQuery实现瀑布流效果
  • drools规则引擎的在项目中的使用手记
  • 使用JavaPython爬取网页包括js文件,css文件和图片
  • JS变异小技巧:使用JavaScript全局变量绕过XSS过滤器
  • javascript的基本知识点
  • 缓存方案coolKie、localStorage、sessionStorage介绍和简单的使用
  • java development kie_Java Development Kit (JDK) 发展历程 及新特性
  • Cocos 2d-js 虚拟摇杆
  • co0kie
  • 流程引擎之KIE项目简介
  • Hutool导出Excel,在一个单元格设置多个字体样式
  • java使用POI的HSSFWorkbook导出excel模板添加各种校验
  • java导出excel如何设置单元格样式为文本样式
  • JAVA简单实现Excel导入/导出 以及excel样式设置!
  • apache POI导出excel文件 及单元格合并 、样式的设置
  • Java操作poi导出Excel自定义字体颜色
  • JAVA实现Excel导入/导出 以及excel样式设置
  • poi3.17版本生成excel的一些样式设置

  • 淘嘟嘟介绍
  • 商务合作
  • 免责声明

CopyRight © 淘嘟嘟版权所有

Linux系统编程:验证kernel内核缓存区大小->4096字节相关推荐

  1. Linux系统编程:验证kernel内核缓存区大小-4096字节

    使用的API read/write函数 常常被称为Unbuffered IO.指的是无用户缓存区.但不保证不使用内核缓存区.我们可以用来验证内核缓存区的大小是不是4096字节.这里我们还用一个系统函数 ...

  2. 基于Yocto构建嵌入式Linux系统U-boot、kernel内核、rootfs文件系统

    前言 Yocto 是一个很强大的构建工具,其功能不仅仅是用来获取BSP源码和简单地编译源码,开发者还可以使用Yocto对其 开发板添加各种第三方开发库,而不需要每次重新从零开始编译源码,解决第三方依赖 ...

  3. RK3399-SD卡linux系统制作(uboot,kernel内核,根文件)

    从sd卡启动:原文链接:https://blog.csdn.net/weixin_45746588/article/details/107952681 1.VM虚拟机安装和PC端ubuntu系统安装 ...

  4. 攻克 Linux 系统编程

    课程亮点 完整学习路线图,系统掌握核心知识点 内核源码深入分析,知其然更知所以然 高频问题全面汇总,精准定位症结所在 八大主题商业案例,实操中获得拔高提升 专家推荐 曾与宇文拓共事五年,他对技术的钻研 ...

  5. 【Linux | 系统编程】Linux系统编程(文件、进程线程、进程间通信)

    文章目录 Linux系统编程 文件IO open/close函数 read/write函数 文件描述符 阻塞.非阻塞 fcntl函数 lseek函数 传入传出参数 文件系统 文件存储 文件操作 sta ...

  6. 【读书笔记】linux系统编程

    linux系统编程 原作名:Linux System Programming 作者: Robert Love 第一章 入门和基本概念 1.1 系统编程 应用程序需要与更高层次的库进行交互,系统程序就是 ...

  7. 【Linux系统编程】fork()函数详解

    00. 目录 文章目录 00. 目录 01. 进程创建函数 02. 父子进程结构 03. 父子进程地址空间 04. 附录 01. 进程创建函数 #include <sys/types.h> ...

  8. Linux 系统编程 -进程概念篇

    Linux系统编程-进程篇 冯诺依曼体系结构 冯诺依曼的两个重要思想 当代计算机的三级缓存 操作系统 操作系统的概念 操作系统的组成 操作系统作用 Linux下的操作系统体系 进程 进程概念 进程特性 ...

  9. Linux系统编程笔记

    文章目录 1.Linux系统编程 2.文件IO 2.1 文件描述符 2.2 open 2.3 perror 2.4 close 2.5 write 2.6 read 2.7 remove 2.8 系统 ...

最新文章

  1. 最新最全大数据图谱,请拿走不谢!
  2. centos7 中文乱码问题解决方法
  3. hashmap允许null键和值吗_hashMap底层源码浅析
  4. avoid error when import AssemblyKeyFile
  5. android 组件不可见,Android setVisibility(View.VISIBLE)不显示该组件
  6. sqlprofiler 常用调试方法
  7. 将您重定向的次数过多什么意思_电池循环次数是什么意思?怎么计算的?
  8. android实现箭头流程列表_反思|Android 列表分页组件Paging的设计与实现:系统概述...
  9. 视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
  10. function函数嵌套 matlab_Matlab函数进阶:使用匿名函数和内嵌函数处理多变量传递问题...
  11. 位置问题_改变铸件浇注入水位置,能解决哪些问题?
  12. Android学习之android源码的导入
  13. 移动终端CPU、GPU浅析
  14. SpringMVC Hello(IDEA)
  15. jni android rect.h,解决 fatal error: jni_md.h: No such file or directory #include “jni_md.h”
  16. hybrid App cordova打包webapp PhoneGap
  17. 网管日志-06.08.16
  18. flume java 安装部署_[Hadoop] Flume安装部署与简单使用
  19. MOOC电子科技大学 离散数学 集合论 第一次作业答案
  20. 【Maven】阿里镜像仓库地址

热门文章

  1. 商贸企业节税大全!如何通过税收政策减轻税负?
  2. 通过图片url地址来识别图片验证码,不是图片文件 不是图片文件 不是图片文件
  3. ubuntu12.04打开qt5.2.0時出现异常
  4. Java容器类类库概述
  5. 北京中信银行总行地址_中信银行地址
  6. 案例分析 - 百度传课网易云课堂在线教育平台竞品分析
  7. 联想主板9针开关接线图_家用配电箱安装接线图解
  8. 计算机研讨会通讯录,中国科学院研究生院计算机科学与技术学术研讨会稿件评审.doc...
  9. 《java虚拟机规范SE7》整理——第三章:为Java虚拟机编译
  10. JAVA电子书店管理系统计算机毕业设计Mybatis+系统+数据库+调试部署