操作系统实验三文件管理Word文档下载推荐.docx
- 文档编号:14329043
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:34
- 大小:205.04KB
操作系统实验三文件管理Word文档下载推荐.docx
《操作系统实验三文件管理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《操作系统实验三文件管理Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。
目录项中应该记录新文件的文件名及其在外存的地址等属性。
(2)删除文件
当已不再需要某文件时,可将它从文件系统中删除。
在删除时,系统应该先从目录中找到要删除的文件的目录项,使之成为空项,然后回收该文件所占用的存储空间。
(3)读文件
在读一个文件时,须在相应的系统调用中给出文件名和应该读入的内存目标地址。
此时,系统同样要查找目录,找到制定的目录项,从中得到被读文件在外存中的位置。
在目录项中,还有一个指针用于对文件的读/写。
(4)写文件
在写一个文件时,须在相应的系统调用中给出该文件名及该文件在内存中的(源)地址。
为此,也同样须先查找目录,找到指定文件的目录项,在利用目录中的写指针进行写操作。
(5)截断文件
如果一个文件的内容已经陈旧而需要全部更新文件的内容时,一种方法是将此文件删除,再重新创建一个新文件。
但如果文件名及其属性均无改变时,则可采取另一种所谓的截断文件的方法,此即将原有文件的长度设置为0,或说放弃原有的文件内容。
(6)设置文件的读/写位置
intstart;
//文件在磁盘存储空间的起始地址
intlength;
//文件内容长度
intmaxlength;
//文件的最大长度
charfileKind[3];
//文件的属性--读写方式
structtm*timeinfo;
boolopenFlag;
//判断是否有进程打开了文件
};
intused=0;
//定义MFD目录中用已有的用户数
//两级目录结构体
typedefstructuser_file_directory//用户文件目录文件UFD
{
fileTable*file;
user_file_directory*next;
}UFD;
typedefstructmaster_file_directory//主目录文件
charuserName[10];
charpassword[10];
UFD*user;
}MFD;
MFDuserTable[MaxUser];
intuserID=-1;
//用户登录的ID号,值为-1时表示没有用户登录
//文件管理
voidfileCreate();
//创建文件
voidfileDelet();
//删除文件
voidfileWrite();
//写文件
voidfileRead();
//读文件
voidfileRename();
//重命名文件
voidfileFind();
//查询文件
voidfileDir();
//显示某一用户所有文件
voidfileClose();
//关闭已打开的文件
voidfileChange();
//修改文件的读写方式
intrequestDist(int&
stratPostion,intmaxlength);
//磁盘分配查询
voidinitDisk();
//初始化磁盘
voidfreeDisk(intstartPostion);
//磁盘空间释放
voiddiskShow();
//显示磁盘使用情况
voidinitFile();
//用户管理
voiduserCreate();
intlogin();
voiduserDelet();
voiduserFind();
//用户登陆主界面
voidwebUser();
//用户内部界面
voidwebFile();
intmain()
initDisk();
initFile();
webUser();
return0;
}
voidwebUser()
inti;
while
(1)
{
printf("
************************************************************\n"
);
1.创建用户2.登陆用户\n"
3.删除用户4.查看用户\n"
0.退出系统\n"
请输入操作号\n"
scanf("
%d"
&
i);
switch(i)
{
case0:
exit(0);
break;
case1:
userCreate();
case2:
userID=login();
if(userID!
=-1)
{
webFile();
}
break;
case3:
userDelet();
case4:
userFind();
default:
printf("
您输入的命令有误,请重新选择\n"
system("
pause"
cls"
}
}
voiduserCreate()
charc;
if(used<
MaxUser)
请输入用户名:
"
for(i=0;
c=_getch();
i++)
if(c==13)break;
else
userName[i]=c;
%c"
c);
userName[i]='
\0'
;
i<
used;
if(!
strcmp(userTable[i].userName,userName))
printf("
\n"
该用户名已存在,创建用户失败\n"
system("
return;
strcpy(userTable[used].userName,userName);
请输入密码:
userTable[used].password[i]=c;
*"
userTable[userID].password[i]='
创建用户成功\n"
used++;
system("
else
创建用户失败,用户已达到上限\n"
fflush(stdin);
intlogin()
charname[10],psw[10];
inti,times;
printf("
请输入用户名:
for(i=0;
if(c==13)break;
else
name[i]=c;
name[i]='
i<
used;
if(!
strcmp(userTable[i].userName,name))
if(i==used)
\n您输入的用户名不存在\n"
return-1;
for(times=0;
times<
3;
times++)
memset(psw,'
sizeof(psw));
\n请输入密码:
psw[i]=c;
strcmp(psw,userTable[i].password))
用户登录成功\n"
break;
if(i==used)
您输入的密码错误,您还有%d次输入机会\n"
2-times);
if(times==2)exit(0);
elsebreak;
returni;
voiduserDelet()
intstatePos;
UFD*q;
inti,times,j;
q=userTable[i].user->
next;
while(q)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 文件 管理