文件IO的描述及操作步骤

本文介绍了文件IO的概念,强调了Linux系统中API在文件操作中的作用,特别是open、close、write、read和lseek等常用接口。详细阐述了文件操作的步骤,包括内存中的动态文件和块设备上静态文件的同步过程。同时,讨论了文件描述符作为区分进程内多个打开文件的关键角色。最后,提到了大文件打开慢和断电导致文件内容丢失的现象,解释了这样设计的原因在于内存操作的灵活性和块设备的限制。
摘要由CSDN通过智能技术生成

1.什么是文件IO:

IO就是input/output,输入输出。文件IO就是读写文件。

2.文件操作的主要接口API

(1)API是一些函数,这些函数是由linux系统提供支持的,由应用程序程序来使用。
(2)应用层程序通过调用API来调用操作系统中的各种功能来干活。
(3)学习一个操作系统,其实就是学习这个操作系统的API.

3.常用的文件IO接口
open、close、write、read、lseek

4.文件操作的一般步骤

(1)一般先open打开一个文件,得到文件描述符,在对文件进行读写操作,完成读写文件后最后close关闭文件,以免造成文件损坏。

(2)文件平时是存在块设备中的文件系统中,我们把这种文件叫静态文件。当我们去open打开一个文件时,linux内核做的操作包括:内存在进程中建立一个打开文件的数据结构,记录下我们打开的这个文件;内核在内存中申请一段内存,并却将静态文件的内容从块设备中读取到内存中特定的地址管理存放(叫动态文件)。

(3)打开文件后,对文件的读写操作都是针对动态文件进行操作。当我们对动态文件操作完成后,此时内存中的动态文件和设备快中的静态文件就不同步了,当我们close关闭动态文件时,close内部内核将内存中的动态文件的内容同步到块设备中的静态文件。

(4)常见的一些现象
第一个:打开一个大文件时比较慢。
第二个:文件写到一半,突然断电,重启文件后内容丢失。

(5)为什么要这么设置
以为块设备本身有读写限制,,本身对块设备进行操作非常不灵活。而内存可以按字节为单位来操作,而且可以随机操作(内存就叫RAM,random),很灵活。

5.文件描述符(fd,后期操作文件都是通过fd来操作)

(1)文件描述符实质就是一个数字,这个数字在一个进程中表示一个特定的含义,这个数字是和我们内存中的动态文件绑定上的,我们应用程序要操作这个动态文件,只需要用这个文件描述符区分。

(2)文件描述符就是用来区分一个程序打开的多个文件。

(3)文件描述符的作用域就是当前进程。

注意在编写应用程序时,实时查看man手册
man 1 xx :查linuxshell命令
man 2 xx:查API
man 3 xx : 查函数库

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值