c++ VC++ 下模拟实现一个 Linux 文件系统
当在初始化后/*超块初始化 0#盘块*/
disk.seekp(0); //空闲结点号栈80*3=240 B (0 ~ 239)
disk<<setw(3)<<-1; //0# 的i结点已使用,就赋-1(0 ~ 2)
for(i=1;i<=79;i++)
{
disk<<setw(3)<<i;
}
disk<<setw(3)<<79; //空闲结点栈指针==当前结点数(240 ~ 242)
for(i=0;i<10;i++) //空闲盘块号栈10*3=30 B (243 ~ 270) 11#盘块已使用 末尾盘块为21#
{
disk<<setw(3)<<i+12;
}
disk<<setw(3)<<10; //空闲结点栈指针==当前栈中盘块数(271 ~ 273)
disk<<setw(3)<<80; //空闲i结点总数(274 ~ 276)
disk<<setw(3)<<89; //空闲盘块总数(277 ~ 279)
在定义超快后
struct SUPERBLOCK//超块
{
int fistack[80];//空闲结点号栈 setw(3)*80 用了填-1
int fiptr;//空闲结点栈指针(还有多少个) setw(3)
int fbstack[10];//空闲盘块号栈 setw(3)*10
int fbptr;//空闲结点栈指针 setw(3)
int inum;//空闲i结点总数 setw(3)
int bnum;//空闲盘块总数 setw(3)
};
在源代码中对超快的修改 能直接实现在disk中相对应位置的修改吗
如果不能球大胜讲解 小弟在此谢过