- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文件系统模拟设计c
#include stdio.h
#include iostream.h
#include string.h
#include iomanip.h
#define FILENAME_LENGTH 10 //文件名称长度
#define COMMAND_LENGTH 10 //命令行长度
#define PARA_LENGTH 30 //参数长度
//账号结构
typedef struct users
{
char name[8];
char pwd[10];
}users;
//文件结构
struct fnode
{
char filename[FILENAME_LENGTH];
int isdir;
int isopen;
char content[255]; //我是目录/我是文件
fnode *parent;
fnode *child;
fnode *prev;
fnode *next;
};
//账号
users usrarray[8] =
{
usr1,usr1,
usr2,usr2,
usr3,usr3,
usr4,usr4,
usr5,usr5,
usr6,usr6,
usr7,usr7,
usr8,usr8,
};
fnode *initfile(char filename[],int isdir);
void createroot();
int run();
int findpara(char *topara);
bool chklogin(char *users, char *pwd);
void help();
int mkdir();
int create();
int read();
int write();
int del();
int cd();
int dir();
fnode *root,*recent,*temp,*ttemp;
char para[PARA_LENGTH],command[COMMAND_LENGTH],temppara[PARA_LENGTH],recentpara[PARA_LENGTH];
//创建文件与目录结点
fnode* initfile(char filename[],int isdir)
{
fnode *node=new fnode;
strcpy(node-filename,filename);
node-isdir=isdir;
node-isopen=0;
node-parent=NULL;
node-child=NULL;
node-prev=NULL;
node-next=NULL;
return node;
}
//创建文件存储结点
void createroot ()
{
recent=root=initfile(/,1);
root-parent=NULL;
root-child=NULL;
root-prev=root-next=NULL;
strcpy(para,/);
}
int mkdir()
{
temp=initfile( ,1);
cintemp-filename;
if(recent-child==NULL)
{
temp-parent=recent;
temp-child=NULL;
recent-child=temp;
temp-prev=temp-next=NULL;
}
else
{
ttemp=recent-child;
while(ttemp-next)
{
ttemp=ttemp-next;
if(strcmp(ttemp-filename,temp-filename)==0ttemp-isdir==1)
{
printf(对不起,目录已存在!);
return 1;
}
}
ttemp-next=temp;
temp-parent=NULL;
temp-child=NULL;
temp-prev=ttemp;
temp-next=NULL;
}
return 1;
}
int create()
{
temp=initfile( ,0);
cintemp-filename;
cintemp-content;
if(recent-child==NULL)
{
temp-parent=recent;
文档评论(0)