资源简介
操作系统课程设计 操作系统课程设计 文件管理 C 附实验报告
代码片段和文件信息
#include
#include
#include
#include
#define FILENAME_LEN 21
#define INPUT_LEN 81
#define COMMAND_LEN 11
//结点结构
struct FileNode
{
char filename[FILENAME_LEN];//文件名/目录名
int isdir;//目录文件识别标志
int i_nlink;//文件的链接数
int adr;//文件的地址
struct FileNode *parent *child;//指向父亲的指针和指向左孩子的指针
struct FileNode *sibling_prev *sibling_next;//指向前一个兄弟的指针和指向
//后一个兄弟的指针.
};
void Init();//初始化文件树
int ParseCommand();//接受输入的命令并把其分解成操作名和路径文件名
void ExecuteCommand();//执行命令
int cdComd();//处理cd命令
int editComd();//处理edit命令
int delComd();//处理del命令
int rdComd();//处理rd命令
int dirComd();//处理dir命令
int mdComd();//处理md命令
int FindPath(char *ph);//寻找参数ph所指向的路径
//从参数Para2中找到要建立或删除的文件、目录名,并把指针指向其父亲结点
int FindFilename(char Para2[]);
struct FileNode* CreateFileNode(char filename[]int isdirint i_nlink);//创建结点
int GetInput(char* bufferunsigned int buffer_len);//获取输入
int CheckCommand();//命令检查
int GetDir(int beginchar* pathchar* curDir);//获取路径
void Trim(char* str);
struct FileNode * cp *tp *root*upper;
char path[INPUT_LEN-COMMAND_LEN];//记录当前走过的路径
char curpath[INPUT_LEN-COMMAND_LEN]Para1[COMMAND_LEN]
Para2[INPUT_LEN-COMMAND_LEN]tmppath[INPUT_LEN-COMMAND_LEN];
char filename[FILENAME_LEN]dirname[FILENAME_LEN]tmp;
int ij;
//主函数
int main()
{
Init();//初始化文件树
while(1)
{
if(ParseCommand())//分解命令
ExecuteCommand();//执行命令
}
}
//执行命令子函数
void ExecuteCommand()
{
int sign;
//根据参数Para1调用相应的功能处理模块
if(strcmp(Para1“cd“)==0)
sign=cdComd(); //cd命令
else if(strcmp(Para1“edit“)==0)
sign=editComd(); //edit命令
else if(strcmp(Para1“del“)==0)
sign=delComd(); //del命令
else if(strcmp(Para1“dir“)==0)
sign=dirComd(); //dir命令
else if(strcmp(Para1“md“)==0)
sign=mdComd(); //md命令
else if(strcmp(Para1“rd“)==0)
sign=rdComd(); //rd命令
else if(strcmp(Para1“exit“)==0)
exit(0); //exit命令
else
printf(“命令错误请重试\n“); //命令输入不正确,报错
}
//创建结点
struct FileNode* CreateFileNode(char filename[]int isdirint i_nlink)
{
//申请结点空间
struct FileNode* node=(struct FileNode*)malloc(sizeof(struct FileNode));
//相应内容赋初值
strcpy(node->filenamefilename);
node->isdir=isdir;
node->i_nlink=i_nlink;
node->parent=NULL;
node->child=NULL;
node->sibling_prev=NULL;
node->sibling_next=NULL;
return node;
}
//初始化文件树
void Init()
{
struct FileNode *bin*usr*unix*etc;
strcpy(path“/“); //根目录为当前目录
////////////////////////////////////////////////////////////////////////
/////////////////////创建初始目录结点///////////////////////////////////
bin = CreateFileNode(“bin“10);
usr = CreateFileNode(“usr“10);
unix = CreateFileNode(“unix“00);
etc = CreateFileNode(“etc“10);
root = cp = tp = CreateFileNode(“/“10);
////////////////////////////////////////////////////////////////////////
/////////////////////创建初始目录结点结束///////
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3766 2008-07-02 13:09 大型实验\filesys\Debug\BuildLog.htm
文件 454656 2008-07-02 13:08 大型实验\filesys\Debug\filesys.exe
文件 406 2008-07-02 13:08 大型实验\filesys\Debug\filesys.exe.em
文件 472 2008-07-02 13:08 大型实验\filesys\Debug\filesys.exe.em
文件 381 2008-07-02 13:07 大型实验\filesys\Debug\filesys.exe.intermediate.manifest
文件 37235 2008-07-02 13:07 大型实验\filesys\Debug\filesys.obj
文件 2051072 2008-07-02 13:08 大型实验\filesys\Debug\filesys.pdb
文件 67 2008-07-02 13:08 大型实验\filesys\Debug\mt.dep
文件 53248 2008-01-14 19:24 大型实验\filesys\Debug\vc60.pdb
文件 53248 2008-07-02 13:09 大型实验\filesys\Debug\vc90.pdb
文件 15922 2008-07-02 13:09 大型实验\filesys\filesys.c
文件 4294 2008-01-13 15:25 大型实验\filesys\filesys.dsp
文件 522 2008-01-13 15:19 大型实验\filesys\filesys.dsw
文件 371712 2008-07-02 13:27 大型实验\filesys\filesys.ncb
文件 53760 2008-01-14 19:26 大型实验\filesys\filesys.opt
文件 2672 2008-01-14 19:24 大型实验\filesys\filesys.plg
文件 3072 2008-07-02 13:27 大型实验\filesys\filesys.suo
文件 5201 2008-07-02 13:06 大型实验\filesys\filesys.vcproj
文件 1427 2008-07-02 13:09 大型实验\filesys\filesys.vcproj.LENOVO-03045314.litianxiang.user
文件 45056 2007-12-29 11:57 大型实验\osfile.doc
文件 126464 2008-01-13 18:52 大型实验\实验报告.doc
目录 0 2008-07-07 22:20 大型实验\filesys\Debug
目录 0 2008-07-07 22:20 大型实验\filesys
目录 0 2008-07-07 22:20 大型实验
----------- --------- ---------- ----- ----
3284653 24
相关资源
- 操作系统课程设计——多线程同步演
- 操作系统课程设计银行家算法C语言
- 操作系统中的文件管理模拟
- 操作系统课程设计报告模拟文件系统
- 操作系统课程设计(最佳适应算法的
- 操作系统文件管理系统c++
- 简单文件管理系统的实现
- 操作系统课程设计 linux文件系统
- c++写的操作系统课程设计:模拟文件
- 操作系统文件管理系统模拟实现
- 操作系统课程设计,设备分配与磁盘
- 操作系统课程设计之进程调度源代码
- 进程调度时间片轮转+优先级进程调度
- 操作系统课程设计 文件管理系统模拟
- 操作系统课程大作业-文件管理系统
- 操作系统c语言模拟文件管理系统
- 操作系统课程设计
- QT文件管理器
- 操作系统课程设计——一动态分区分
- 操作系统课程设计银行家算法C语言版
- C++模拟操作系统文件管理
- 网络操作系统课程设计——位示图模
- 操作系统课程设计 天津科技大学 二级
- 操作系统课程设计 进程通信 三种方式
- 杭电 操作系统课程设计 简单文件系统
- 操作系统课程设计 简单的二级文件系
- 操作系统课程设计——Linux二级文件系
评论
共有 条评论