1.进程(文件描述符表:文件描述符标志(close_on_exec),指针)---用户空间
2.内核(文件表项:文件状态标志(读写,添加,同步,非阻塞),当前文件偏移量---每个进程对该文件都有偏移量,指针),一个文件表项对应一个进程打开的一个文件
3.V节点(i节点(文件所有者,文件长度,文件实际数据块指针)),一个V节点对应一个实际文件。
1.每次write后,如果当期文件偏移量>文件长度,文件加长
2.设置o_append后,偏移量会被设置为文件长度
3.若调用 lseek 定位到当期文件的尾端,偏移量被设置为文件长度
4. lseek 函数只修改文件表项中的当期文件偏移量,不进行任何i/o操作
5. fork,dup 父进程和子进程的每一个打开的文件描述符共享同一个文件表项
6. 文件描述符标志作用域一个进程的一个描述符,文件状态标志作用域指向该文件表项的任何一个文件描述符。
7.两个系统之间的调用,都不是原子操作
8.sync 定期冲洗(flush),不等待磁盘完成
9.fsync 对指定的 fd 生效,并等待磁盘完成,还会更新文件属性,数据库需要确保修改过的块立刻写到磁盘上。
10.fdatasync 只影响文件的数据部分

2.文件描述符

3.函数 open 和 openat





  1. creat()

  2. close()

  3. lseek()







7.read()

8.write()

9.I/O效率



10.文件共享





11.原子操作


12.函数 dup 和 dup2


13.函数 sync, fsync 和 fdataysnc

14.函数 fcntl









  1. 函数 ioctl

  2. /dev/fd



https://baike.baidu.com/item/TOCTOU/8918334?fr=aladdin

3.UNIX 环境高级编程--文件 IO相关推荐

  1. unix环境高级编程——文件i/o

    一.文件描写叙述符 对于内核.通过文件描写叙述符来管理文件.什么是文件描写叙述符? 在unix中,用open或者create建立几个文件时候,内核向进程返回一个整数,用来记录此文件. 以后对文件进行操 ...

  2. UNIX 环境高级编程 文件和目录

    函数stat , fstat , fstatat , lstat stat函数返回与此文件有关的信息结构. fstat函数使用已打开的文件描述符(而stat则使用文件名) fstatat函数 为一个相 ...

  3. unix环境高级编程-文件和目录(1)

    stat.fstat和lstat函数: 一旦给出pathname,stat函数返回与此函数命令文件有关的信息结构.第二个参数buf是指针,指向一个我们必须提供的结构体.该结构体的基本结构是: 文件类型 ...

  4. UNIX环境高级编程 文件I/O

    大多数文件I/O 只需要用到 5个函数 :    open , read , write , lseek , close 本章描述的都是不带缓冲的I/O(read write 都调用内核中的一个系统调 ...

  5. (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  6. unix环境高级编程(上)-文件篇

    目录 前言 unix基础知识 unix标准化和实现 unix提供的文件IO 文件和目录 标准IO 系统数据文件 前言 笔者将<unix环境高级编程>主要内容总结为三篇:文件篇,进程篇,高级 ...

  7. 《Unix环境高级编程》---标准IO

    一.基础结构 1.文件 FILE FILE是标准IO用来表示文件的结构体,所有标准IO都以FILE为基础. stdin FILE类型的指针,指向标准输入流. stdout FILE类型的指针,指向标准 ...

  8. apue.h头文件(UNIX环境高级编程)

    相信非常多初学<UNIX环境高级编程>的朋友都会遇到一个问题,执行里面的实例(download: http://www.apuebook.com/ )时就出现故障,提示 "错误: ...

  9. UNIX环境高级编程笔记之文件I/O

    一.总结 在写之前,先唠几句,<UNIX环境高级编程>,简称APUE,这本书简直是本神书,像我这种小白,基本上每看完一章都是"哇"这种很吃惊的表情.其实大概三年前,那会 ...

  10. 文件和目录(二)--unix环境高级编程读书笔记

    在linux中,文件的相关信息都记录在stat这个结构体中,文件长度是记录在stat的st_size成员中.对于普通文件,其长度可以为0,目录的长度一般为1024的倍数,这与linux文件系统中blo ...

最新文章

  1. The number of Oracle redo threads (2) is not the same as the number of checkpoint threads (1)
  2. Unity 编辑器扩展 场景视图内控制对象
  3. shell 水平测试
  4. 方立勋_30天掌握JavaWeb_JDBC、连接池、JNDI(三)
  5. Docker 实战教程之从入门到提高(二)
  6. 收藏!博士大佬的《机器学习》西瓜书手推笔记!
  7. pr调色预设_视频调色不好掌握?用这2000套PR、AE、达芬奇调色预设吧
  8. 比豆二机器人好的机器人_扫地机器人和吸尘器哪个好
  9. 遍历系统进程和对应模块以及创建进程
  10. POJ 3687 逆序拓扑
  11. html怎么打开成word,html怎么打开Word文档
  12. 学习《华为基本法》(9):预算控制和成本控制
  13. 视频教程-大学数学实验(MATLAB版)-其他
  14. android福州经纬度,android....中国各城市的经纬度,
  15. 5g理论速度_5g速度一般是多少兆
  16. 火车硬座、高铁动车、国内经济舱 座位分布表
  17. 在PCLVisualizer中添加坐标轴和图片和颜色表
  18. 通过文件流解压压缩包
  19. 如何用java POI在excel中画线_java poi对excel的操作详解
  20. Python 最近两条好消息:①TIOBE排名超过C和Java②新版本发布3.10.0,还有今天刚发布的《What’s New in Python(2021.10.15)》

热门文章

  1. C++重载运算符的规则详解
  2. Linux内核解读入门(转CSDN)
  3. javascript实现划词搜索功能(兼容IE,firefox,opera)
  4. POJ#1182 食物链
  5. maven(一)入门
  6. NFC中国-中国第一NFC论坛,NFC中文论坛+NFC技术社区+NFC_电子发烧友网【申明:来源于网络】...
  7. InnerJoin分页导致的数据重复问题排查
  8. Wrong FS: hdfs://......, expected: file:///
  9. 如何让谷歌取消自动重定向
  10. 标记语言——邪恶的表格?