3.UNIX 环境高级编程--文件 IO
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
creat()
close()
- lseek()
7.read()
8.write()
9.I/O效率
10.文件共享
11.原子操作
12.函数 dup 和 dup2
13.函数 sync, fsync 和 fdataysnc
14.函数 fcntl
函数 ioctl
/dev/fd
https://baike.baidu.com/item/TOCTOU/8918334?fr=aladdin
3.UNIX 环境高级编程--文件 IO相关推荐
- unix环境高级编程——文件i/o
一.文件描写叙述符 对于内核.通过文件描写叙述符来管理文件.什么是文件描写叙述符? 在unix中,用open或者create建立几个文件时候,内核向进程返回一个整数,用来记录此文件. 以后对文件进行操 ...
- UNIX 环境高级编程 文件和目录
函数stat , fstat , fstatat , lstat stat函数返回与此文件有关的信息结构. fstat函数使用已打开的文件描述符(而stat则使用文件名) fstatat函数 为一个相 ...
- unix环境高级编程-文件和目录(1)
stat.fstat和lstat函数: 一旦给出pathname,stat函数返回与此函数命令文件有关的信息结构.第二个参数buf是指针,指向一个我们必须提供的结构体.该结构体的基本结构是: 文件类型 ...
- UNIX环境高级编程 文件I/O
大多数文件I/O 只需要用到 5个函数 : open , read , write , lseek , close 本章描述的都是不带缓冲的I/O(read write 都调用内核中的一个系统调 ...
- (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- unix环境高级编程(上)-文件篇
目录 前言 unix基础知识 unix标准化和实现 unix提供的文件IO 文件和目录 标准IO 系统数据文件 前言 笔者将<unix环境高级编程>主要内容总结为三篇:文件篇,进程篇,高级 ...
- 《Unix环境高级编程》---标准IO
一.基础结构 1.文件 FILE FILE是标准IO用来表示文件的结构体,所有标准IO都以FILE为基础. stdin FILE类型的指针,指向标准输入流. stdout FILE类型的指针,指向标准 ...
- apue.h头文件(UNIX环境高级编程)
相信非常多初学<UNIX环境高级编程>的朋友都会遇到一个问题,执行里面的实例(download: http://www.apuebook.com/ )时就出现故障,提示 "错误: ...
- UNIX环境高级编程笔记之文件I/O
一.总结 在写之前,先唠几句,<UNIX环境高级编程>,简称APUE,这本书简直是本神书,像我这种小白,基本上每看完一章都是"哇"这种很吃惊的表情.其实大概三年前,那会 ...
- 文件和目录(二)--unix环境高级编程读书笔记
在linux中,文件的相关信息都记录在stat这个结构体中,文件长度是记录在stat的st_size成员中.对于普通文件,其长度可以为0,目录的长度一般为1024的倍数,这与linux文件系统中blo ...
最新文章
- The number of Oracle redo threads (2) is not the same as the number of checkpoint threads (1)
- Unity 编辑器扩展 场景视图内控制对象
- shell 水平测试
- 方立勋_30天掌握JavaWeb_JDBC、连接池、JNDI(三)
- Docker 实战教程之从入门到提高(二)
- 收藏!博士大佬的《机器学习》西瓜书手推笔记!
- pr调色预设_视频调色不好掌握?用这2000套PR、AE、达芬奇调色预设吧
- 比豆二机器人好的机器人_扫地机器人和吸尘器哪个好
- 遍历系统进程和对应模块以及创建进程
- POJ 3687 逆序拓扑
- html怎么打开成word,html怎么打开Word文档
- 学习《华为基本法》(9):预算控制和成本控制
- 视频教程-大学数学实验(MATLAB版)-其他
- android福州经纬度,android....中国各城市的经纬度,
- 5g理论速度_5g速度一般是多少兆
- 火车硬座、高铁动车、国内经济舱 座位分布表
- 在PCLVisualizer中添加坐标轴和图片和颜色表
- 通过文件流解压压缩包
- 如何用java POI在excel中画线_java poi对excel的操作详解
- Python 最近两条好消息:①TIOBE排名超过C和Java②新版本发布3.10.0,还有今天刚发布的《What’s New in Python(2021.10.15)》
热门文章
- C++重载运算符的规则详解
- Linux内核解读入门(转CSDN)
- javascript实现划词搜索功能(兼容IE,firefox,opera)
- POJ#1182 食物链
- maven(一)入门
- NFC中国-中国第一NFC论坛,NFC中文论坛+NFC技术社区+NFC_电子发烧友网【申明:来源于网络】...
- InnerJoin分页导致的数据重复问题排查
- Wrong FS: hdfs://......, expected: file:///
- 如何让谷歌取消自动重定向
- 标记语言——邪恶的表格?