Linux系统编程:验证kernel内核缓存区大小->4096字节
Linux系统编程:验证kernel内核缓存区大小->4096字节
使用的API
read/write函数 常常被称为Unbuffered IO。指的是无用户缓存区。但不保证不使用内核缓存区。我们可以用来验证内核缓存区的大小是不是4096字节。这里我们还用一个系统函数 dup2 文件描述符重定向函数,来实现 从终端输入 直接输出到文件中。
验证内核缓存区大小
思路很简单,就是测试4096这个临界点。
首先往文件中写4096个字节,查看数据是否写入到磁盘文件,从终端读入数据,缓存区4096数据是否写到磁盘文件。
代码
- #include <stdio.h>
- #include <string.h>
- #include <unistd.h>
- #include <fcntl.h>
- int main(void)
- {
- int fd = open("temp.txt",O_RDWR|O_CREAT|O_TRUNC,0664);
- char temp[1024]={0};
- dup2(fd,STDOUT_FILENO);
- //文件重定向后,往终端输出的数据,会写入的文件中
- //先写4096B试试,看看能写入磁盘不
- for(int i = 0; i < 4096;i++)
- {
- printf("%c",48);
- }
- //kernel缓存区大小为4096!写到4097字节,缓冲区溢出才会将缓冲区内容写道磁盘文件,
- //缓存区继续放数据
- while(1)
- {
- //读取终端数据
- read(STDIN_FILENO,temp,sizeof(temp));
- if(strncmp(temp,"exit",4)==0)
- break;
- printf("%s\n",temp);
- }
- close(fd);
- return 0;
- }
启动程序查看文件数据
程序启动,写入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的一些样式设置
Linux系统编程:验证kernel内核缓存区大小->4096字节相关推荐
- Linux系统编程:验证kernel内核缓存区大小-4096字节
使用的API read/write函数 常常被称为Unbuffered IO.指的是无用户缓存区.但不保证不使用内核缓存区.我们可以用来验证内核缓存区的大小是不是4096字节.这里我们还用一个系统函数 ...
- 基于Yocto构建嵌入式Linux系统U-boot、kernel内核、rootfs文件系统
前言 Yocto 是一个很强大的构建工具,其功能不仅仅是用来获取BSP源码和简单地编译源码,开发者还可以使用Yocto对其 开发板添加各种第三方开发库,而不需要每次重新从零开始编译源码,解决第三方依赖 ...
- RK3399-SD卡linux系统制作(uboot,kernel内核,根文件)
从sd卡启动:原文链接:https://blog.csdn.net/weixin_45746588/article/details/107952681 1.VM虚拟机安装和PC端ubuntu系统安装 ...
- 攻克 Linux 系统编程
课程亮点 完整学习路线图,系统掌握核心知识点 内核源码深入分析,知其然更知所以然 高频问题全面汇总,精准定位症结所在 八大主题商业案例,实操中获得拔高提升 专家推荐 曾与宇文拓共事五年,他对技术的钻研 ...
- 【Linux | 系统编程】Linux系统编程(文件、进程线程、进程间通信)
文章目录 Linux系统编程 文件IO open/close函数 read/write函数 文件描述符 阻塞.非阻塞 fcntl函数 lseek函数 传入传出参数 文件系统 文件存储 文件操作 sta ...
- 【读书笔记】linux系统编程
linux系统编程 原作名:Linux System Programming 作者: Robert Love 第一章 入门和基本概念 1.1 系统编程 应用程序需要与更高层次的库进行交互,系统程序就是 ...
- 【Linux系统编程】fork()函数详解
00. 目录 文章目录 00. 目录 01. 进程创建函数 02. 父子进程结构 03. 父子进程地址空间 04. 附录 01. 进程创建函数 #include <sys/types.h> ...
- Linux 系统编程 -进程概念篇
Linux系统编程-进程篇 冯诺依曼体系结构 冯诺依曼的两个重要思想 当代计算机的三级缓存 操作系统 操作系统的概念 操作系统的组成 操作系统作用 Linux下的操作系统体系 进程 进程概念 进程特性 ...
- 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 系统 ...
最新文章
- 最新最全大数据图谱,请拿走不谢!
- centos7 中文乱码问题解决方法
- hashmap允许null键和值吗_hashMap底层源码浅析
- avoid error when import AssemblyKeyFile
- android 组件不可见,Android setVisibility(View.VISIBLE)不显示该组件
- sqlprofiler 常用调试方法
- 将您重定向的次数过多什么意思_电池循环次数是什么意思?怎么计算的?
- android实现箭头流程列表_反思|Android 列表分页组件Paging的设计与实现:系统概述...
- 视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
- function函数嵌套 matlab_Matlab函数进阶:使用匿名函数和内嵌函数处理多变量传递问题...
- 位置问题_改变铸件浇注入水位置,能解决哪些问题?
- Android学习之android源码的导入
- 移动终端CPU、GPU浅析
- SpringMVC Hello(IDEA)
- jni android rect.h,解决 fatal error: jni_md.h: No such file or directory #include “jni_md.h”
- hybrid App cordova打包webapp PhoneGap
- 网管日志-06.08.16
- flume java 安装部署_[Hadoop] Flume安装部署与简单使用
- MOOC电子科技大学 离散数学 集合论 第一次作业答案
- 【Maven】阿里镜像仓库地址
热门文章
- 商贸企业节税大全!如何通过税收政策减轻税负?
- 通过图片url地址来识别图片验证码,不是图片文件 不是图片文件 不是图片文件
- ubuntu12.04打开qt5.2.0時出现异常
- Java容器类类库概述
- 北京中信银行总行地址_中信银行地址
- 案例分析 - 百度传课网易云课堂在线教育平台竞品分析
- 联想主板9针开关接线图_家用配电箱安装接线图解
- 计算机研讨会通讯录,中国科学院研究生院计算机科学与技术学术研讨会稿件评审.doc...
- 《java虚拟机规范SE7》整理——第三章:为Java虚拟机编译
- JAVA电子书店管理系统计算机毕业设计Mybatis+系统+数据库+调试部署