洛阳理工学院操作系统实验报告.docx
文本预览下载声明
洛阳理工学院操作系统实验报
作者:
日期:
阳理工学院实验报告用纸
计算机 系 B090 5 01班 姓名 袁乐平 学号B0 9 050103 成绩
实验 名称
文件管理
同组人
日期
12. 6
实验目的
通过这次实验,掌握文件系统的用户管理,掌握普通文件、目录文件管理的的基本原
理。
二、 实验原理
使用文件系统的用户要通过用户名、密码的验证 ,对不同用户设置不同(自己相应 )的
子目录,如图(a )所示。M FD是主文件目录,Po w e r是存放用户名、密码的文件,简单 起见此处用数组代替;UFD3, UFD1,…,UFD9是10个用户目录,用户0的目录(U FD0 )下包含文件f 1. txt,…,f7. c。图(b)是创建目录、文件以及删除目录、文件所 用的存储数据结构。
三、 实验内容
#inclu d estdi o. h
#inc 1 udema ll o c.h
inc 1 ude v std l i b. h
in c l ud e v st ri n g.h
type d ef str u c t us e r
{
c har UN ame[ 8 ]; //用户名
char P a sswo rd[1 0 ]; //密码
} Access;
t yp edef stru c t {
?3ha r FName[10];
struct *ne xt;
} File;
ty p ed e f struc t MFD node{
?3 h ar UN a me[8];
struct M F Dnode * r i gh t;
扌 i le * down ;
} D Fli n k;
Acces s pow e r[10 ]
DFlink * h ead;
voi d i n itP o w e r(){
in t i ;
pri nt f(请输入用户信息: nH );
f or( i =0;i5; i++){
?pri n tf (请输入用户名:);
gets_s (p o w e r [i].U N am e );
pr i ntf(请输入密码:);
? g ets_s(po w er [ i ]. Pa sswo r d);
}
}
v oid i ni t He a d (){
i n t i ;
?DFlin k * m, * n;
?m=(DFlink *) m a 1 l o c(sizeof(D Flink));
m-rig h t =NUL L ;
m— d o wn = NULL ;
head= m;
for(i=0;i5; i ++ )
{
? n=(DF 1 in k*) ma 11o c ( si zeo f (DFli nk));
s t r cpy _s(n- UN a me,pow e r[ i ] .UName); m-ri g ht =n;
n - right =N U LL ;
n- d own=NU L L;
?m = n ;
}
}
int l o ggi n g () {
?shar n ame[8], p asswo r d[ 10 ];
i nt i= 0 ;int j=0;
卬rintf (请输入登录的用户名:);
gets s(nam e);
?whil e ( i 2 str cm p ( p ower [ i ]. UName, n a m e)! = 0) ?? + +;
if(i5)
?{
prin tf (请输入密码:”);
?get s — s (passwor d );
w h il e (st rc mp(power[i]. P assword, p assw ord)! =0 j3) {
? p r i n tf (密码不正确,请重新输入:);
? g ets_s(passwo rd);
j++;
}
if (j== 3)
{
?p rin t f (密码输入错误超过三次,禁止输入 \n);
??r e t ur n -1;
}
?e s e{
? re tu rn i;
?}
}
?else
{
??
retu r n - 1;
号
}
v oid (i n t i n d e x) {
c ha r na m e 1 [ 8 ];
D Flin k * n;
?=i le * s ,* p;
? n tj;
s t rc py_s(na m e 1, power[i n dex].UName);
n=head-ri g ht ;
w hi le ( n ! =NU L L str c mp( n -UN a me ,name1)!=0) n = n — right ;
?i f ( n ! = NULL ){
??= ( F
显示全部