1、阻塞和非阻塞
想要将文件以非阻塞方式打开,有两种方式
(1)需要将文件关闭,再用非阻塞方式打开
(2)fctnl函数,先获取旧属性,再添加一个新属性
阻塞函数
阻塞函数一直在等待输入,非阻塞函数不会一直等待
因此当事情发生时,阻塞函数会第一时间知晓,非阻塞函数不会
因此,当输入时,非阻塞函数可能正在sleep,会等待一会再接收
阻塞函数会第一时间知晓,并作出反应
非阻塞函数
文件系统
1、磁盘扇区
2、磁盘标志位
把磁盘分成若干个块,每个块里有32768位
data block是记录文件内容的
inode table由许多inode节点组成
每个inode节点存储文件属性,文件修改时间,由谁创建,创建时间,用户属于哪个组和数据块指针(存储的是data block每个块中的开头的指针)
bitmap------位图
inode bitmap------如果为0,表示对应的空间不能被其他人使用
如果想要存储一个名为a.txt,内容为hello world的文件,该怎么做
1:找到Boot block,查看磁盘分区
2、找到GDT块组描述符表,找到其余的起始地址,查看当前是否存在空闲的inode
3、把inode bitmap的标志位置1,并将文件属性写入inode文件属性中
4、把文件内容写入块里面,同时把地址写入到数据块指针里
如果想要读取一个文件,该怎么做
前两个步骤相同
3、根据inode节点编号计算出字节的inode节点位置
4、找到block的位置
删除文件
把标志位置0即可
3、节点编号
4、链接
硬链接:ln src 硬链接
符号链接(软连接):ln -S src 符号
每个文件包括:文件属性和文件内容
硬链接:创建了一个新的文件属性,指向文件内容
软链接:将文件属性起别名
软链接和文件用的是同一个节点编号
符号链接,当删除时,就出错了,但重新创建原来的文件,符号链接有好用了
5、stat
6、assess