文件操作的主要接口API
2016-04-08 23:04
260 查看
《朱老师物联网大讲堂》学习笔记
学习地址:www.zhulaoshi.org
学习一个操作系统,就是学习如何使用这个操作系统的API,
就好像练习一个新英雄,要学会使用他的技能,并结合召唤师峡谷环境特点,发挥你的实力。
操作文件,得先open,得到文件描述符,
若没有open成功,无法得到文件描述符,也就无法操作,
在进行read,write等操作后,要close文件。
文件平时是存储在块设备中的文件系统中的,此时是静态文件,
open后,内核在进程中建立一个打开文件的数据结构,记录下我们打开的文件,
同时内核在内存中申请一段内存,将静态文件的内容从块设备中读取,存放到内存中来管理操作,此时是动态文件,
我们进行读写操作的对象是这个动态文件,所以最后要close以保存文件到块设备中。
为什么要这么设计?
块设备得整块操作,哪怕你操作一个字节,也得从头开始读取数据,
内存的特性是以字节为单位随机操作的,想访问哪个字节就访问哪个字节。
文件描述符
实质是一个数字,在进程中有特定的含义,
与内存中打开文件的数据结构联系起来,
通过这个“数字”来操作文件,
其作用域是当前进程。
open
close
write
read
lseek
学习地址:www.zhulaoshi.org
学习一个操作系统,就是学习如何使用这个操作系统的API,
就好像练习一个新英雄,要学会使用他的技能,并结合召唤师峡谷环境特点,发挥你的实力。
操作文件,得先open,得到文件描述符,
若没有open成功,无法得到文件描述符,也就无法操作,
在进行read,write等操作后,要close文件。
文件平时是存储在块设备中的文件系统中的,此时是静态文件,
open后,内核在进程中建立一个打开文件的数据结构,记录下我们打开的文件,
同时内核在内存中申请一段内存,将静态文件的内容从块设备中读取,存放到内存中来管理操作,此时是动态文件,
我们进行读写操作的对象是这个动态文件,所以最后要close以保存文件到块设备中。
为什么要这么设计?
块设备得整块操作,哪怕你操作一个字节,也得从头开始读取数据,
内存的特性是以字节为单位随机操作的,想访问哪个字节就访问哪个字节。
文件描述符
实质是一个数字,在进程中有特定的含义,
与内存中打开文件的数据结构联系起来,
通过这个“数字”来操作文件,
其作用域是当前进程。
open
close
write
read
lseek
相关文章推荐
- windows下flex安装使用
- “耐撕”团队 2016.04.08 站立会议
- iOS学习笔记11-多线程入门
- Marza Gift for GDC 2016
- Linux下crontab命令的用法
- 使用VS 2012调试PostgrelSQL
- bzoj3506【CQOI2014】排序机械臂 bzoj1552【CERC2007】robotic sort
- Python自动化运维学习笔记
- 求错误!
- 写一个函数判断存储空间是大端还是小端
- 总结下最近的面试经验
- VS2010不能正确加载 'VSTS for Database Professionals Sql Server Data-tier Application'
- URAL 1997 Those are not the droids you're looking for 二分图最大匹配
- windows下cmake安装使用
- bzoj3505【CQOI2014】数三角形
- windows下git安装使用
- 求助一题C#作业
- 如何在安装好myecplise后添加新的jdk
- windows下diff安装使用
- windows下Perl安装使用