📄 fcb.h
字号:
#include"block.h"#include"errcode.h"#include"mode.h"#include"fflag.h"#define fcbmax 16#define dsize 32struct fcb //FCB结构{ char f_count; //文件访问次数 char f_flag; //标志字 int f_blkno; //存放本文件目录结构的块号 int f_number; //文件目录结构所在块内偏移序号 unsigned short f_mode; //文件属性 char f_uid; //文件主ID char f_gid; //同主用户ID int f_fsize; //文件大小 char f_name[8]; //文件名 unsigned short int f_add[8]; //存放文件信息的空间地址};class ifcb{public: ifcb(); int readi(fcb *fp,int offset,int count,char*base); //读指定FCB所代表的文件 int writei(fcb *fp,int offset,int count,char*base); //写指定FCB所代表的文件 int getblock(fcb *fp,int lblock); //得到指定文件的指定逻辑块所对应的物理块 int addblock(fcb *fp,int pblock); //将物理块加到指定文件中,增加空间 int getiadd(fcb *fp); //得到指定文件的一级间接寻址的的块信息 int putiadd(fcb *fp); //将指定文件的一级间接寻址的块信息写入 fcb *iget(int blkno,int num); //读出指定的文件目录结构,并产生对应的FCB int iput(fcb *fp); //将FCB的信息存入对应的文件目录结构中 fcb *icreate(fcb *fp,char*name); //在指定FCB下,创建FCB int idelete(fcb *pfp,fcb *fp); //在指定FCB下,删除指定FCB fcb *namei(fcb *fp,char*name,int f_mode=IFREG); //文件查找 ~ifcb();private: unsigned short int iadd[256]; //存储一级间接寻址的信息 struct fcb *curfp; //当前在运行的FCB struct fcb *fcbi[fcbmax]; //FCB系统 int fcbnum; //当前FCB系统中FCB的数目 class block iblock; //嵌套块管理层};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -