某学院操作系统课程设计报告(文件管理系统)(原创)内容摘要:

\nOr you can ask yourteacher for help.\n)。 break。 } } } else printf(User canseled\nGood Bye\n)。 } 表表 81 实实 验验 设设 计计 的的 文文 件件 系系 统统 与与 真真 正正 文文 件件 系系 统统 的的 区区 别别 调用中断访问外存 调用库函数访问外存 不依赖于其他操作系统 依赖其他操作系统 自定义系统文件格式 二进制格式 真正文件系统 实验设计的文件系 统 几几 个个 重重 要要 的的 算算 法法 处处 理理 数据地址安排 for(i=NICFREE+2。 iFILEBLK。 i+=50) /* 要要 加加 上上 2的的 原原 因因 是是 :: 每每 50个个 BLOCK成成 组组 ,在在 每每 个个 BLOCK组组 当当 中中 的的 第第 一一 个个 BLOCK(称称 为为 地地 址址 块块 ) 放放 有有 整整 个个 BLOCK组组 的的 地地 址址。 这这 样样 ,[0]指指 向向 该该 组组 的的 地地 址址 块块 ,而而 [49]++ 1则则 指指 向向 下下 一一 个个 组组 的的 地地 址址 块块 */ { for(j=0。 jNICFREE。 j++) { block_buf[NICFREE1j]=ij。 } fseek(fd,DATASTART+BLOCKSIZ* (i49),SEEK_SET)。 fwrite(block_buf,1,BLOCKSIZ,fd)。 } 数据块的分配 // 当当 i=502之之 后后 ,完完 成成 文文 件件 块块 502~453的的 写写 入入。 之之 后后 文文 件件 块块 512~503不不 能能 进进 行行 ,需需 要要 特特 殊殊 处处 理理 for(i=503。 i512。 i++) block_buf[i503]=i。 fseek(fd,DATASTART+BLOCKSIZ*503,SEEK_SET)。 fwrite(block_buf,1,BLOCKSIZ,fd)。 // 至至 此此 ,才才 完完 成成 512块块 文文 件件 块块 的的 定定 位位 for(i=0。 iNICFREE。 i++) { [i]=i+3。 // 从从 DATASTART的的 第第 一一 个个 BLOCK作作 为为 MAIN // DIRECTORY // 第第 二二 个个 BLOCK作作 为为 etc目目 录录 // 第第 三三 个个 BLOCK作作 为为 password文文 件件 // 故故 此此 i要要 加加 3 } if(==0) { printf(\nDisk Full!!\n)。 return DISKFULL。 } i=。 flag=(i==0)。 if(flag) // 该该 BLOCK组组 全全 部部 用用 了了 { fseek(fd,DATASTART+BLOCKSIZ* ([NICFREE1]+1),SEEK_SET)。 // [NICFREE1]+1指指 向向 下下 一一 个个 block组组 的的 地地 址址 块块 fread(block_buf,1,BLOCKSIZ,fd)。 for(i=0。 iNICFREE。 i++) 数据块的回收 { [i]=block_buf[i]。 } // 将将 待待 用用 block组组 的的 地地 址址 读读 入入 超超 级级 块块 =NICFREE1。 free_block=[]。 } else { free_block=[]。 } • if(==NICFREE1) • // 表表 示示 回回 收收 的的 block已已 经经 可可 以以 组组 成成 一一 个个 block组组 了了 • { • for(i=0。 iNICFREE。 i++) • { • block_buf[i]=[NICFREE1i]。 • } • =0。 • • fseek(fd,DATASTART+BLOCKSIZ* ([0]),SEEK_SET)。 • // [0]为为 当当 前前 BLOCK组组 的的 地地 址址 块块 • fwrite(block_buf,1,BLOCKSIZ,fd)。 • } • else ++。 访问控制 • switch(mode) • {case READ: • if(inodedi_modeamp。 ODIREAD) return 1。 • if((inodedi_modeamp。 GDIREAD)amp。 amp。 • (user[user_id].u_gid==inodedi_gid)) return 1。 • if((inodedi_modeamp。 UDIREAD)amp。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。