华北科技学院计算机学院综合性实验
实 验 报 告
课程名称 操作系统 实验学期 2024 至 2024 学年 第 2 学期 学生所在院部 计算机学院 年级 2024 专业班级 网络B181 学生姓名 梁英 学号 202407024122
成绩评定:
1、工作量: A( )、B( )、C( )、D( )、E( ) 2、难易度: A( )、B( )、C( )、D( )、E( ) 3、报告规范度: A( )、B( )、C( )、D( )、E( ) 4、学习态度: A( )、B( )、C( )、D( )、E( ) 总评成绩: 指导教师:
计算机学院制
华北科技学院计算机学院综合性实验报告
《操作系统》课程综合性实验报告
开课实验室: 大软机房 2024年 5月20日 实验题目 一、实验目的 简单文件系统设计 用高级语言(C、C++、Java等)编写一个简单文件系统,模拟文件管理的过程。深入了解文件操作命令的内容和执行过程,掌握它们的实施方法,加深对文件管理内容的理解。 二、设备与环境 Linux操作系统环境,使用编辑器和GCC编译器编写和编译程序。 三、实验内容及要求 设计一个简单文件系统,采用二级文件目录结构。设置主文件目录(MFD)和用户文件目录(UFD),前者包含文件用户及目录区指针,后者给出每个文件用户及文件目录,即文件名、读取权限、文件长度以及它们存放的位置等。 四、实验结果及分析 1. 关键代码及分析 (1)创建用户 void initUser(MFD *mfd) { for(int i = 1 ; i <= 3 ; i++) //初始化十个不同用户 { Map *m ; m = (Map*)malloc(sizeof(Map)) ; if(m == NULL) { exit(0) ; } cout<<\请输入三个用户名 : \ cin>>m->userName ; m->file = NULL ; m->next = NULL ; if(mfd->head == NULL) { mfd->head = mfd->tail = m ; } else { mfd->tail->next = m ; mfd->tail = m ; } } } (2)create指令
第 1 页
华北科技学院计算机学院综合性实验报告 int createFile(Map *user , char file_name[] , int file_protect[3] , int file_length) { File *file ; file = (File*)malloc(sizeof(File)) ; if(file == NULL) { return false ; } strcpy(file->file_name , file_name) ; //进行文件的初始化 file->file_protect[0] = file_protect[0] ; file->file_protect[1] = file_protect[1] ; file->file_protect[2] = file_protect[2] ; file->file_length = file_length ; file->read = file->write = file->save =0 ; file->next = NULL ; if(user->file == NULL) { user->file = file ; } else { File *op , *preOp = NULL ; op = user->file ; while(op) //查找是否存在同名文件 { if(strcmp(op->file_name , file->file_name) == 0) { cout<<\文件名 \已被创建 ! \return false ; } preOp = op ; op = op->next ; } preOp->next = file ; } } (3)展示文件内容效果 void displayOpenFile(AFD *afd , Map *user) { cout<<\ File *file ; file = afd->head ; while(file) { cout<
第 2 页
操作系统综合实验文件系统设计



