第一范文网 - 专业文章范例文档资料分享平台

模拟Unix文件系统实验报告

来源:用户分享 时间:2025/5/15 17:42:35 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

//内存用户信息

#ifndef MUSER struct muser{

struct user us: //读入内存的外存用户信息; int off_t://用户信息在外存etc文件中的位置; int fd;//当前目录在文件表中的位置: }mus; #endif

五. 模块详解

5.1文件、目录和文件表操作

(经过i节点模块封装后这一层的所有操作都感觉是对文件中的每一个字节进行操作) int search(char *,int);//查找单个目录下文件或子目录的函数 int iname(char *);//从根目录查找整个目录函数

int readf(int fd, char *buf, int count);//读文件中的内容d

int writef(int fd, const char *buf, int count);//将内容写入文件e

int openf(const char *pathname, int flags);//查找目录找到文件后写入文件表n int creatf(const char *pathname, int mode);//创建文件或目录t int linkf(const char *oldpath, const char *newpath);//联接文件k int unlinkf(const char *pathname);//删除联接k int closef(int fd);//关闭文件e

5.2 i节点操作

(1、主要负责将所有上层对字节的操作转化为对块的操作 2、文件的底层建立和删除)

int iread(int i,struct inode * ); 读入外存inode; int iwrite(int i,struct inode * );写出外存inode; int ialloc(struct iuser ius);申请inode; int ifree(int i);释放inode;

struct minode * i_get(int i);//获取内存inode int i_put(struct minode *);//删除内存inode;

int getblock(unsigned int offset,struct inode);//寻找文件物理块函数

int ifadd(unsigned int size,struct minode *);//将文件的字节的加长转化为对物理块的增加了

int ifsub(unsigned int size,struct minode *);//文件的减短改变为对物理块的减少 int subblock(unsigned int offset,struct inode in);//删除文件块子函数

5.3 块操作

unsigned int balloc();//分配一个块

int brelse(unsigned int b);//回收一个块

int bread(int b,unsigned short seek,unsigned short m,void *buf);//读取块中的内容 int bwrite(int b,unsigned short seek,unsigned short m,const void *buf);//写入块

中的内容

int set_ds();//成组链接的初始化函数;

5.4具体命令操作

void ls();//显示文件目录

void cd(char *);//改变当前目录 void u_umask(int);//文件创建屏蔽码

void passwd(const char *);//修改用户口令 void u_chmod(char *,int);//改变文件权限 void pwd();//显示当前目录

void u_chown(char *,char);//改变文件拥有者 void u_chgrp(char *,char);//改变文件所属组 void u_touch(char *);//新建文件 void rm(char*);//文件删除

void u_mkdir(char *);//创建子目录 void u_rmdir(char *);//删除子目录 void vi(char *);//编写文件内容

void u_cat(char*);//连接显示文件内容 void u_mv(char*,char*);//改变文件名 void u_ln(char*,char*);//建立文件联接 void u_cp(char*,char*);//文件拷贝

5.5主函数和所有命令操作的函数

int bash(char * );// 所有命令操作的函数exit 退出命令操作函数;

int main(void);//主函数进行登录和格式化或进入所有命令操作的函数

5.6其他函数

int init();初始化函数/ int login();登录函数/

int shutdown();/退出系统的函数/

六. 实验演示

6.1登录

6.2cat操作

6.3cd操作

6.4ls操作

6.5chgrp操作

6.6chown操作

6.7chmod操作

6.8touch操作

6.9mkdir操作

6.10rmdir操作

6.11rm操作

6.12ln操作

6.13mv操作

6.14cp操作

6.15passwd操作

6.16pwd操作

搜索更多关于: 模拟Unix文件系统实验报告 的文档
模拟Unix文件系统实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6q2638vyy68mpoi7oh1u_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top