- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统课程设计报告
简单文件系统的实现
专业:
班级:
姓名:
学号:
老师: 一、课程设计的目的
1. 通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部数据结构、功能以及实现过程的理解。
二、 课程设计要求
1. 在内存中开辟一个虚拟磁盘空间作为文件存储分区,在其上实现一个简单的基于多级目录的单用户单任务系统中的文件系统。在退出该文件系统的使用时,应将该虚拟文件系统以一个Windows 文件的方式保存到磁盘上,以便下次可以再将它恢复到内存的虚拟磁盘空间中。
2文件存储空间的分配可采用显式链接分配或其他的办法。
3空闲磁盘空间的管理可选择位示图或其他的办法。如果采用位示图来管理文件存储空间,并采用显式链接分配方式,那么可以将位示图合并到FAT中。
文件目录结构采用多级目录结构。为了简单起见,可以不使用索引结点,其中的每个目录项应包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。
要求提供以下有关的操作命令:
my_format:对文件存储器进行格式化,即按照文件系统的结构对虚拟磁盘空间进行布局,并在其上创建根目录以及用于管理文件存储空间等的数据结构。
my_mkdir:用于创建子目录。
my_rmdir:用于删除子目录。
my_ls:用于显示目录中的内容。
my_cd:用于更改当前目录。
my_create:用于创建文件。
my_open:用于打开文件。
my_close:用于关闭文件。
my_write:用于写文件。
my_read:用于读文件。
my_rm:用于删除文件。
my_exitsys:用于退出文件系统。
三、程序的设计细想和框图
1.打开文件函数fopen()
(1)格式:FILE *fopen(const char *filename,const char *mode)
(2)功能:按照指定打开方式打开指定文件。
(3)输入参数说明:
filename:待打开的文件名,如果不存在就创建该文件。
mode: 文件打开方式,常用的有:
r:为读而打开文本文件(不存在则出错)。
w:为写而打开文本文件(若不存在则创建该文件;反之,则从文件起始位置写,原内容将被覆盖)。
a:为在文件末尾添加数据而打开文本文件。(若不存在则创建该文件;反之,在原文件末尾追加)。
r+:为读和写而打开文本文件。(读时,从头开始;在写数据时,新数据只覆盖所占的空间,其后不变) 。
w+:首先建立一个新文件,进行写操作,随后可以从头开始读。(若文件存在,原内容将全部消失) 。
a+:功能与a相同;只是在文件末尾添加新的数据后,可以从头开始读。
另外,上述模式字符串中都可以加一个“b”字符,如rb、wb、ab、rb+、wb+、ab+等组合,字符“b”表示fopen() 函数打开的文件为二进制文件,而非纯文字文件。
(4)输出:一个指向FILE类型的指针。
2.关闭文件函数fclose()
(1)格式:int fclose(FILE * stream);
(2)功能:用来关闭先前fopen()打开的一个文件。此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。
(3)输入参数说明:
stream:指向要关闭文件的指针,它是先前执行fopen()函数的返回值。
(4)输出:若关闭文件成功则返回0;有错误发生时则返回EOF并把错误代码存到errno。
3.读文件函数fread()
(1)格式:size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
(2)功能:读二进制文件到内存。
(3)输入参数说明:
buffer:用于存放输入数据的缓冲区的首地址;
stream:使用fopen()打开的文件的指针,用于指示要读取的文件;
size: 每个数据块的字节数;
count: 要读入的数据块的个数;
size*count:表示要求读取的字节数。
(4)输出:实际读取的数据块的个数。
4.写文件函数fwrite()
(1)格式:size_t fwite(const void *buffer,size_t size,size_t count,FILE *stream);
(2)功能:将数据写到二进制文件中。
(3)输入参数说明:
buffer:用于存放输出数据的缓冲区的首地址;
stream:使用fopen()打开的文件的指针,用于指示要写出的文件;
size: 每个数据块的字节数;
count: 要写出的数据块的个数;
size*count:表示要求写出的字符数。
(4)输出:实际写出的数据块的个数
您可能关注的文档
- 《TCP_IP 协议分析》wireshark抓包实验-以太帧分析-arp攻击实验.docx
- 《TCP_IP 协议分析》传输层协议分析 实验报告.doc
- 《TCP_IP 协议分析》开开同学的实验报告.docx
- 《TCP_IP 协议分析》实验二 传输层协议报文信息分析.doc
- 《TCP_IP 协议分析》网络协议与分析课后习题.doc
- 《TCP_IP 协议分析》魏刘宏 11054126 实验1 数据链路层和 IP 层数据包分析.docx
- 《TCP_IP 协议分析》魏刘宏11054126第三章P55.docx
- 《TCP_IP 协议分析》魏刘宏11054126第五章P108.docx
- 《TCP_IP 协议分析》习题解答参考思路.docx
- 《VLSI设计导论》4.数字集成电路基本单元与版图.ppt
最近下载
- 高一数学幂函数、指数函数和对数函数练习题(含答案).docx VIP
- 新疆市政定额-第11册 钢筋工程、拆除工程.pdf VIP
- 运动强度控制方法.pptx VIP
- 2024年新人教道德与法治一年级上册全册教学课件(新版教材).pptx
- (人教版)小学数学六年级上册单元培优卷第一单元《分数乘法》(原卷版).docx VIP
- 2020年护士资格证考试常见疾病试题:循环系统解剖生理.docx VIP
- 2025年最新人教版七年级(初一)数学上册教学计划及进度表(新课标,新教材).docx
- 《如何提升领导力》课件.pptx VIP
- 《挺身式跳远》课件.ppt VIP
- 《腕管综合征》课件.ppt VIP
文档评论(0)