Linux下访问文件的基本模式

发表于:2013-10-09来源:IT博客大学习作者:edsionte点击数:

访问文件的操作主要是指读文件和写文件,下文简单说明内核中几种常见的访问文件的方式。

访问文件的操作主要是指读文件和写文件,下文简单说明内核中几种常见的访问文件的方式。

普通模式

读写系统调用的默认方式。以读系统调用为例,默认情况下读函数以阻塞的形式访问数据,并且使用了内核的页高速缓存机制。而写函数则直接将修改后的数据写入页高速缓存就返回。此时O_SYNC和O_DIRECT两个标志均被置0。

同步模式

同步模式主要是指进程将阻塞到数据请求完成为止,但是读操作默认情况下即为阻塞方式,因此该模式主要针对写函数,此时O_SYNC标志被置1,写函数并不是将页高速缓存中的数据修改后就立马返回,而是直到相应数据被写入磁盘后才返回。

直接I/O模式

该模式下的读写操作并不会使用内核中的页高速缓存机制,而是在用户地址空间和磁盘之间直接进行数据传送。此时O_DIRECT标志被置1。

异步模式

异步模式需要使用特定的系统调用来完成,比如aio_read和aio_write。异步模式是指进程在发出数据请求后并不需要以阻塞的方式等待数据,而是立即返回继续执行其他操作,数据的请求工作在后台自动完成。

内存映射模式

内存映射方式和传统意义上的读写系统调用不同,它将磁盘上的文件映射到进程用户空间的一块虚拟内存中,这样对该文件的操作就可以转化为对内存的操作。通过mmap()就可以实现内存映射。

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)

linux 访问文件软件,Linux下访问文件的基本模式相关推荐

  1. 模拟token访问网络共享路径下的文件

    情景描述: 访问网络共享路径下的文件时,对齐进行的GetFileAttributesEx.PathFileExists等一系列操作均会失败,返回错误码1326(用户名或密码不正确) 问题原因: 因为磁 ...

  2. linux系统搭建ftp服务器--只给某个用户访问其默认目录下的文件

    1.环境: window操作系统中安装FlashFXP 软件或xftp: 服务器端的操作系统为centos8: 2.检查安装vsftpd软件 查看所有的安装的软件包 并在结果中查找包含vsftp 的文 ...

  3. linux文件大小限制6G,Linux或者Win服务器,极限情况下一个文件夹能放多少文件

    决定一个文件夹下能存放多少个文件的,是文件系统,而不是操作系统.文件系统是给硬盘分区格式化时选择的格式.Windows有两种主流的文件系统:FAT32和NTFSFAT32 标称为单目录下最高支持655 ...

  4. linux使用什么命令能够显示当前目录,执行linux命令,其中显示当前目录下的文件命令是什么...

    linux系统下用ls命令列出当前目录下的文件. ls 命令将每个由 Directory 参数指定的目录或者每个由 File 参数指定的名称写到标准输出,以及您所要求的和标志一起的其它信息.如果不指定 ...

  5. 解压linux的iso软件,linux下解压iso文件

    .iso文件的格式是iso9660,iso9660是cd上的一种文件系统, 也就是说是 是数据在cd上的组织形式: 它的一些限制是: 1.最多8级子目录(可以用RockRidge Extension增 ...

  6. linux 批量传文件大小,小弟我使用过的Linux命令之rz - 批量下传文件,简单易用...

    我使用过的Linux命令之rz - 批量上传文件,简单易用 我使用过的Linux命令之rz - 批量上传文件,简单易用 本文链接:http://codingstandards.iteye.com/bl ...

  7. linux如何统计目录下的文件个数,linux怎么查看一个目录下的文件数量

    有时候需要看文件夹下有多少文件,那么就需要用到以下指令 $ls -l | grep -c '^-' 个grep是啥意思呢?我们man一下 $man grep 会看到以下描述: SYNOPSIS gre ...

  8. 怎么在linux下访问磁盘,在Redhat下访问NTFS磁盘

    在Redhat下访问NTFS磁盘 发布时间:2005-09-02 00:05:38来源:红联作者:ABC 方法是对Redhat 7.3 8.0 9.0完全解决方法,最为简单的解决办法. 下载RPM 主 ...

  9. linux 编辑文件软件,Linux文本处理工具及Vim编辑器

    查看文本工具 查看文件 cat cat [OPTION]... [FILE]... -n:显示行号 -A:显示所有控制符 -E:显示行结束符$ -b:显示非空行行号 -s:压缩连续的空行成一行 tac ...

最新文章

  1. XML 数据 BCP方式大批量的上传--学习(一)
  2. 北京沙龙报名 | 关于Dubbo开源的那些事儿
  3. [CTO札记]从Cloud Computing看战略决策:想做、能做与可做 -
  4. sql like 多个条件_都9012年啦,不懂得这些SQL语句优化,你是要吃大亏的
  5. 基于JAVA+SpringBoot+Mybatis+Vue+MYSQL的智慧养老管理系统
  6. yzmcms图片自适应代码_基于segment.js制作的非常有创意的分段式SVG文字动画特效...
  7. 女婿的行为,老丈人哪些不能管,哪些必须管,哪些可管可不管?
  8. easymock使用方法_EasyMock最终方法– PowerMock,JUnit 4,TestNG
  9. matlab中lambertw,MATLAB解常微分方程
  10. js文件里获取路由 vue_纯js文件中,怎么使用vue的路由
  11. 【Web文件上传下载】各种类型文件对应的content-type
  12. python-白盒测试方法
  13. 基本的WEB渗透测试
  14. java中的各种集合排序
  15. 在条形码上如何添加日期
  16. matlab整数规划--简单入门
  17. python每日一个小程序_Python 练习册,每天一个小程序
  18. 英伟达960Linux驱动下载,全面支持GTX960 NVIDIA发布347.25驱动
  19. ubuntu 14.04 sunpinyin解决yue, jue, jiong等拼音输入问题
  20. 腾讯大连无线事业部Java实习面经

热门文章

  1. c# npoi 公式不计算_玉米扣量因素:水分、杂质、不完善粒、生霉粒,检测方法及计算公式...
  2. linux下ftp相关的一些指令
  3. flask的janja模板
  4. Spring Boot细节挖掘(Redis的集成)
  5. Kotlin 循环控制(七)
  6. ToolBar组件的使用
  7. freemarker中运算符_freemarker常见语法大全
  8. [Unity脚本运行时更新]C#5新特性
  9. oracle中update补空格lpad,Oracle lpad 函数
  10. presume_presume是什么意思_presume中文意思_presume英译汉_英汉词典