没有合适的资源?快使用搜索试试~ 我知道了~
(完整)操作系统-实验报告-文件管理.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 81 浏览量
2022-12-22
16:40:56
上传
评论
收藏 666KB DOC 举报
温馨提示
试读
35页
(完整)操作系统-实验报告-文件管理.doc
资源推荐
资源详情
资源评论
(完整)操作系统-实验报告-文件管理
-1-
昆明理工大学信息工程与自动化学院学生实验报告
( 201 —201 学年 第 二 学期 )
课程名称:操作系统 开课实验室: 年 月 日
年级、专业、
班
学
号
姓名
成绩
实验项目名称
文件管理
指 导 教
师
教
师
评
语
教师签名:
年 月 日
一、实验目的
用 C 或 C++语言编写和调试一个简单的文件系统,模拟文件管理的基本功能。从而对各种
文件操作命令的实质内容和执行过程有比较深入的了解。
二、实验原理及基本技术路线图(方框原理图)
用 C 模拟实现文件系统的管理;要求设计一个多级目录结构的文件系统,能正确描述文件
控制块,采用合理的外存分配方式,能实现基本的目录及文件的操作,包括创建、删除、重命名、
复制、移动等功能,并对文件有一定的存取权限控制。
功能设计 :
Help 显示命令帮助
dir 显示当前目录下的文件和文件夹
exit 退出系统
create [文件名] 创建文本文件
cdir [目录名] 创建文件夹
read [文件名] 读取一个文件最多可同时读取五个
close[文件名] 关闭一个文件
edit [文件名] 编辑一个文件
cd [目录名] 进子目录或者上级目录
attr [文件名] 显示该文件的属性
del [文件名] 删除文件
rename [文件名] 重命名
(完整)操作系统-实验报告-文件管理
-2-
编辑功能流程图
(完整)操作系统-实验报告-文件管理
-3-
删除文件流程图 创建文件流程图
核心算法:
bool Format(void); //格式化
bool install(void); //装载虚拟硬盘的数据
void login(void); /用户登陆
void showMenu(void);//显示功能菜单
bool onAction(void);//用户选择功能并执行
void createFile(string str);//创建文件
bool read(string str);//读取文件
(完整)操作系统-实验报告-文件管理
-4-
void editFile(string str);//编辑文件
void Delete(string str);//删除一个文件
数据结构:
/*——-—--——-常变量—-——-—*/
const unsigned int BLOCK_SIZE=512; //块长
const unsigned int DATA_BLOCK_NUM=512; //数据块数量
const unsigned int DINODE_START=4*BLOCK_SIZE;//inode 起始位置
const unsigned int DINODE_SIZE=512; //inode 大小
const unsigned int DINODE_NUM=32; //inode 数量
const unsigned int DATASTART=(2+DINODE_NUM)*BLOCK_SIZE; //数据区的开始地址
const unsigned int ACCOUNT_NUM=10; //用户数量
/*inode 结构体*/
struct inode{
unsigned short di_tag; /*inode 标识*/
unsigned short di_number; /*关联文件数,当为 0 时表示删除文件,如一个目录至
少 包含两个文件:"。"和”.."*/
unsigned short di_mode; /*存取模式:0 为目录,1 为文件*/
unsigned short di_userID; /*当前 inode 所属用户 0 为根目录 ID,一次下去是管
理员目 录、用户目录*/
unsigned short di_access; /*访问权限 0 为不允许普通用户访问(公共目录),1 为
允许 普通用户访问*/
unsigned short di_size; /*文件大小,目录没有大小,值为 0*/
unsigned short di_ctime; /* 创建时间 */
unsigned short di_mtime; /* 最后一次修改时间*/
(完整)操作系统-实验报告-文件管理
-5-
unsigned short di_block[DATA_BLOCK_NUM]; /* 数据块块地址编号 */
};
/**超级块***/
struct super_block{
unsigned short s_inodes_count; /* 文件系统中 inode 的总数 */
unsigned short s_blocks_count; /* 数据块总数 */
unsigned short s_r_blocks_count; /* 保留块总数 */
unsigned short s_free_blocks_count; // 空闲块总数
unsigned short s_free_inodes_count; /* 空闲的 inode 总数 */
unsigned short s_log_block_size; /* block 的大小 */
};
/**账户信息**/
struct user{
unsigned short user_id; //用户 ID
unsigned short user_access; //权限
string username; //用户名
string password; //密码
};
/**文件/目录结构**/
struct directory{
string name; /*目录名*/
unsigned short d_ino; /*目录号*/
};
三、所用仪器、材料(设备名称、型号、规格等).
剩余34页未读,继续阅读
资源评论
是空空呀
- 粉丝: 173
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功