泡泡网 "Be fresh and eager every morning, and tired and satisfied every night." --Kent Beck
LAB06: Design & Implementation of a Mini File System
实验基本要求:
- 本实验分两次实验课完成,可以在任何平台下用标准C编程。
- 把一个文件模拟为一块磁盘,在此磁盘上构建一个简单的文件系统,至少实现下列三个函数的功能:
int init_fs(void);
int my_read(const char* filename, void* buf, int size);
int my_write(const char* filename, void* buf, int size);
实验内容:
- 在满足上述基本要求的基础上,你可以自己编写demo程序,也可以使用下面提供的框架;
- minifs.c(for win & linux)包含本次实验的框架代码。
- 下列宏和函数可供使用:
#define SECTOR_SIZE 256 /* 每个扇区的大小 */
#define TOTAL_SECTOR 128 /* 扇区总数 */
/* 把磁盘的第sector个扇区内容读入到buf,sector从0开始编号。
运行正确返回非0值,错误返回0 */
int read_disk(int sector, void* buf);
int write_disk(int sector, void* buf);
- 主程序可以用来测试。它在当前目录维护一个vdisk.dat文件,作为虚拟磁盘文件。read_disk()和write_disk()实际上都是读写这个文件。程序重新运行,文件内容并不丢失。此文件在初始状态都用0填充。
- 执行程序后,根据提示选择是读文件还是写文件。并输入文件名。写文件时还需要输入文件内容,按F6+回车表示输入结束。读文件时直接显示读出的文件内容。
- 如果你能让这个文件系统更完善,提供更全面的文件访问功能,可获得最高5分的加分。
实验报告内容:
- 用文字和图表描述你设计的文件系统;
- 把带有注释的源代码附到实验报告后。
下载:
- 实验报告模板(doc)
- 示例程序 for Win32 & Linux
评分标准:
- 对课堂表现分来说,能写入一个文件并正确读出内容即算完成实验。
- 实验报告中源代码的分通过学生演示程序,当堂给出,标准如下:
- 代码中有精当的注释(1分)
- 代码风格良好(1分)
- 写入一个文件,可以正确读出(4分)
- 写入一个文件,重新执行程序后,可以正确读出(2分)
- 写入同名文件,可以覆盖原有内容(2分)
- 可以正确写入和读出大于256个字节的文件(2分)
- 指导教师可以针对代码提出问题,如学生不能准确作答,直接认定为抄袭。
黑ICP备05004784号