// 在根目录创建个 xrk 文件,里面写入 www.xrkxzz.cn
void GenAFile()
{
int i = 0;
// 写第 3 个 inode // 使用 第 3 个 inode 作为 xrk 的 inode
sInode sitmp;
sitmp.st_mode = 0x81A4;
sitmp.user = 0x0;
sitmp.size = 1024;
sitmp.atime = 0x4764cc3b;
sitmp.ctime = 0x4764cc3b;
sitmp.mtime = 0x4764cc3b;
sitmp.dtime = 0x4764cc3b;
sitmp.group = 0;
sitmp.links = 1; // 必须不为 0,否则文件不会被识别
sitmp.ocupiedBlocks = 2;
sitmp.flags = 0;
sitmp.osInfo = 0;
sitmp.blocks[0] = 23; // 使用第 23 个块做数据块
for(i=1; i<15; i++)
sitmp.blocks[i] = 0;
sLoadInode(3, &sitmp); // 使用 第 3 个 inode 作为 xrk 的 inode
// 第 23 个数据块
char buf[] = "www.xrkxzz.cn\n";
MFileWriteStringInByte( 23*1024, buf);
//将对应的位图置 1
sSetAddrBitN(1024*s_grpDescrpt.blockBmLoc, 23);
// 更新超级块和块组描述符 freeBlocks
sUpdateFreeBlocks();
// 写根目录的 datablock,把 xrk 文件加入
sDataBlock sdtmp;
sdtmp.inodeIndex = 3;
sdtmp.recordLen = 12;
sdtmp.fileNameLen = 1;
sdtmp.fileType = 2;
strcpy(sdtmp.fileName, ".");
sLoadDataBlock(21, 0, &sdtmp);
sdtmp.fileNameLen = 2;
sdtmp.recordLen = 12;
memset(sdtmp.fileName, 0, sizeof(sdtmp.fileName));
strcpy(sdtmp.fileName, "..");
sLoadDataBlock(21, 12, &sdtmp);
sdtmp.inodeIndex = 3; // 第三个 inode
sdtmp.fileNameLen = 3;
sdtmp.recordLen = 1024-24;
memset(sdtmp.fileName, 0, sizeof(sdtmp.fileName));
strcpy(sdtmp.fileName, "xrk");
sLoadDataBlock(21, 24, &sdtmp);
}