模拟仿真unix文件管理系统内容摘要:

这是部分实现的难 点不是简单地对文件的各种操作,而是在对文件 进行各种操作之前对权限的判断。 在这一部分,最 容易实现 的是对文件的浏览,因为每个用户都拥有这个权限,所以不需要控制。 首先,我们初步地把对文件的操作函数列了出来: 创建文件 /目录: create()/createdir() 删除文件 /目录: del/deldir() 列出当前目录文件: dir() 转到目录: cd() 打开文件: open() (注:由于创建文件 /目录 时所分配的资源相同,只是根据类型的不同去存储不同的文件类型,所以只需要一个函数,在调用是使用不同的参数即可。 删除 文件 /目录部分亦如此,详细实现见源代码部分 ) 四 、 数据结构的说明 用户权限控制 在系统运行即提示用户选择用户的种类(管理员、用户、匿名用户),然后再根据用户的选择,执行相应的操作(用户登陆,匿名拥护则直接进入),在这一过程中,系统将根据用户类型分配不同的权限 (详细实现见源代码部分)。 文件结构体 文件的类型分为两种:常规文件和目录。 目录可以进入,并且还可以在其下面继续创建文件;而常规文件则不允许,它们只能作为整个文件系统树的叶子。 每个文件以树中结点的形式存在于文件系统中,而在程序里则用结构体来加以定义,各个结构体之间再用指针相互串联从而构成一棵文件系统树。 其中表示文件结点的结构体定义如下: struct file { char file_name[20]。 struct time creat_time。 char file_type。 char content[MAX_FILE_SIZE]。 char state。 struct file *child。 struct file *brother。 struct file *parent。 }。 其中 file_name 成员是一个字符串数组,保存文件名; creat_time 成员是一个时间类型变量,保存文件的创建时间; file_type 成员表示文件类型,有两种取值, DIRECTORY(目录)或 REGULAR_FILE(常规); content 成员是一个字符串数组,用来模拟文件的内容,初始值为空,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。