版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 專 業(yè):</b></p><p><b> 學 號:</b></p><p><b> 姓 名:</b></p><p><b> 提交日期:</b></p><p><b> 【設計題目】
2、</b></p><p><b> 二級文件系統(tǒng)設計</b></p><p><b> 【設計目的】</b></p><p> 1、本實驗的目的是通過一個簡單多用戶文件系統(tǒng)的設計,加深理解文件系統(tǒng)的內(nèi)部功能和內(nèi)部實現(xiàn)。</p><p> 2、結合數(shù)據(jù)結構、程序設計、計算機原理等課
3、程的知識,設計一個二級文件系統(tǒng),進一步理解操作系統(tǒng)。</p><p> 3、通過分對實際問題的分析、設計、編程實現(xiàn),提高學生實際應用、編程的能力.</p><p><b> 【設計內(nèi)容】</b></p><p><b> 任務</b></p><p> 為Linux系統(tǒng)設計一個簡單的二級文件
4、系統(tǒng)。要求做到以下幾點:</p><p> 1.可以實現(xiàn)下列幾條命令:</p><p> login 用戶登錄</p><p> dir 列目錄</p><p> create 創(chuàng)建文件</p><p> delete 刪除文件</p>&
5、lt;p> open 打開文件</p><p> close 關閉文件</p><p> read 讀文件</p><p> write 寫文件</p><p> cd 進出目錄</p><p> 2.列目錄時要列出文件名
6、,物理地址,保護碼和文件長度</p><p> 3.源文件可以進行讀寫保護</p><p><b> 程序設計</b></p><p><b> 設計思想</b></p><p> 本文件系統(tǒng)采用兩級目錄,其中第一級對應于用戶賬號,第二級對應于用戶帳號下的文件。另外,為了簡便文件系統(tǒng)未考慮文
7、件共享,文件系統(tǒng)安全以及管道文件與設備文件等特殊內(nèi)容。</p><p> 首先應確定文件系統(tǒng)的數(shù)據(jù)結構:主目錄、子目錄及活動文件等。主目錄和子目錄都以文件的形式存放于磁盤,這樣便于查找和修改。</p><p> 用戶創(chuàng)建的文件,可以編號存儲于磁盤上。如:file0,file1,file2…并以編號作為物理地址,在目錄中進行登記</p><p><b>
8、 【實驗環(huán)境】</b></p><p><b> C++/VC++</b></p><p><b> 【設計原理】</b></p><p> 對采用二級文件目錄的文件系統(tǒng)工作的機理了如指掌,對文件系統(tǒng)的相關操作要掌握。</p><p><b> 【設計思路】</
9、b></p><p><b> 1. 主要數(shù)據(jù)結構</b></p><p> #define MAXNAME 25 /*the largest length of mfdname,ufdname,filename*/</p><p> #define MAXCHILD 50 /*the largest child每個用戶名下最多有
10、50個文件*/</p><p> #define MAX (MAXCHILD*MAXCHILD) /*the size of fpaddrno*/</p><p> typedef struct /*the structure of OSFILE定義主文件*/</p><p><b> {</b></p><p>
11、; int fpaddr; /*file physical address*/</p><p> int flength; /*file length*/</p><p> int fmode; /*file mode:0-Read Only;1-Write Only;2-Read and Write; 3-Prot
12、ect;*/</p><p> char fname[MAXNAME]; /*file name*/</p><p><b> } OSFILE;</b></p><p> typedef struct /*the structure of OSUFD定義用戶文件目錄*/</p><p>&l
13、t;b> {</b></p><p> char ufdname[MAXNAME]; /*ufd name*/</p><p> OSFILE ufdfile[MAXCHILD]; /*ufd own file*/</p><p><b> }OSUFD;</b></p><p> t
14、ypedef struct /*the structure of OSUFD'LOGIN定義登陸*/</p><p><b> {</b></p><p> char ufdname[MAXNAME]; /*ufd name*/</p><p> char ufdpword[8]; /*ufd
15、password*/</p><p> } OSUFD_LOGIN;</p><p> typedef struct /*file open mode定義操作方式*/</p><p><b> {</b></p><p> int ifopen; /*ifopen:0-close,1-open*/
16、</p><p> int openmode; /*0-read only,1-write only,2-read and write,3-initial*/</p><p> }OSUFD_OPENMODE;</p><p><b> 2.主要函數(shù)</b></p><p> void LoginF();
17、/*LOGIN FileSystem*/</p><p> void DirF(); /*Dir FileSystem*/</p><p> void CreateF(); /*Create File*/</p><p> void DeleteF(); /*Delete File*/</p><p> void ModifyFM
18、(); /*Modify FileMode*/</p><p> void OpenF(); /*Open File*/</p><p> void CloseF(); /*Close File*/</p><p> void ReadF(); /*Read File*/</p><p> void WriteF(); /*Wri
19、te File*/</p><p> void QuitF(); /*Quit FileSystem*/</p><p> void CdF(); /*Change Dir*/</p><p> void help();</p><p><b> 程序流程設計</b></p><p>&
20、lt;b> 總體功能程序結構圖</b></p><p> 打開命令的程序流程圖</p><p> 刪除命令的程序流程圖</p><p> 關閉命令的程序流程圖</p><p><b> 寫命令的程序流程圖</b></p><p><b> 【源程序清單】&l
21、t;/b></p><p> #include "stdio.h"</p><p> #include "string.h"</p><p> #include "conio.h"</p><p> #include "stdlib.h"</p
22、><p> #define MAXNAME 25 /*the largest length of mfdname,ufdname,filename*/</p><p> #define MAXCHILD 50 /*the largest child*/</p><p> #define MAX (MAXCHILD*MAXCHILD) /*the size of
23、fpaddrno*/</p><p> typedef struct /*the structure of OSFILE*/</p><p><b> {</b></p><p> int fpaddr; /*file physical address*/</p><p> in
24、t flength; /*file length*/</p><p> int fmode; /*file mode:0-Read Only;1-Write Only;2-Read and Write; 3-Protect;*/</p><p> char fname[MAXNAME]; /*file name*/</p>
25、<p><b> } OSFILE;</b></p><p> typedef struct /*the structure of OSUFD*/</p><p><b> {</b></p><p> char ufdname[MAXNAME]; /*ufd name*/</p>
26、;<p> OSFILE ufdfile[MAXCHILD]; /*ufd own file*/</p><p><b> }OSUFD;</b></p><p> typedef struct /*the structure of OSUFD'LOGIN*/</p><p><b> {</
27、b></p><p> char ufdname[MAXNAME]; /*ufd name*/</p><p> char ufdpword[8]; /*ufd password*/</p><p> } OSUFD_LOGIN;</p><p> typedef struct /*fi
28、le open mode*/</p><p><b> {</b></p><p> int ifopen; /*ifopen:0-close,1-open*/</p><p> int openmode; /*0-read only,1-write only,2-read and write,3-initial*/</
29、p><p> }OSUFD_OPENMODE;</p><p> OSUFD *ufd[MAXCHILD]; /*ufd and ufd own files*/</p><p> OSUFD_LOGIN ufd_lp;</p><p> int ucount=0; /*the count of mfd's ufds*/<
30、;/p><p> int fcount[MAXCHILD]; /*the count of ufd's files*/</p><p> int loginsuc=0; /*whether login successfully*/</p><p> char username[MAXNAME]; /*record login user's na
31、me22*/</p><p> char dirname[MAXNAME];/*record current directory*/</p><p> int fpaddrno[MAX]; /*record file physical address num*/</p><p> OSUFD_OPENMODE ifopen[MAXCHILD][MAXCHIL
32、D]; /*record file open/close*/</p><p> int wgetchar; /*whether getchar()*/</p><p> FILE *fp_mfd,*fp_ufd,*fp_file_p,*fp_file;</p><p> void LoginF(); /*LOGIN FileSystem*/</p>
33、;<p> void DirF(); /*Dir FileSystem*/</p><p> void CdF(); /*Change Dir*/</p><p> void CreateF(); /*Create File*/</p><p> void DeleteF(); /*Delete File*/</p><
34、;p> void ModifyFM(); /*Modify FileMode*/</p><p> void OpenF(); /*Open File*/</p><p> void CloseF(); /*Close File*/</p><p> void ReadF(); /*Read File*/</p><p>
35、 void WriteF(); /*Write File*/</p><p> void QuitF(); /*Quit FileSystem*/</p><p> void help();</p><p> char *rtrim(char *str); /*remove the trailing blanks.*/</p><p>
36、; char *ltrim(char *str); /*remove the heading blanks.*/</p><p> void InputPW(char *password); /*input password,use '*' replace*/</p><p> void SetPANo(int RorW); /*Set physical add
37、ress num*/</p><p> int ExistD(char *dirname); /*Whether DirName Exist,Exist-i,Not Exist-0*/</p><p> int WriteF1(); /*write file*/</p><p> int ExistF(char *filename); /*Whether
38、FileName Exist,Exist-i,Not Exist-0*/</p><p> int FindPANo(); /*find out physical address num*/</p><p> void clrscr()</p><p><b> {</b></p><p> system(&q
39、uot;cls");</p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> int i,choice1;</p><p> char choice[50]; /*choic
40、e operation:dir,create,delete,open,delete,modify,read,write*/</p><p> int choiceend=1; /*whether choice end*/</p><p> char *rtrim(char *str); /*remove the trailing blanks.*/</p><p
41、> char *ltrim(char *str); /*remove the heading blanks.*/</p><p> if((fp_mfd=fopen("c:\\osfile\\mfd.txt","rb"))==NULL)</p><p><b> {</b></p><p>
42、 fp_mfd=fopen("c:\\osfile\\mfd.txt","wb");</p><p> fclose(fp_mfd);</p><p><b> }</b></p><p> for(i=0;i<MAX;i++) fpaddrno[i]=0;</p><p
43、> //textattr(BLACK*16|WHITE);</p><p> clrscr(); /*clear screen*/</p><p> LoginF(); /*user login*/</p><p><b> clrscr();</b></p><p> if(loginsuc==
44、1) /*Login Successfully*/</p><p><b> {</b></p><p><b> while (1)</b></p><p><b> {</b></p><p> wgetchar=0;</p><p>
45、if (choiceend==1)</p><p> printf("\n\nC:\\%s>",strupr(dirname));</p><p><b> else </b></p><p> printf("Bad command or file name.\nC:\\%s>",st
46、rupr(username));</p><p> gets(choice);</p><p> strcpy(choice,ltrim(rtrim(strlwr(choice))));</p><p> if (strcmp(choice,"dir")==0) choice1=1;</p><p> else i
47、f(strcmp(choice,"create")==0) choice1=2;</p><p> else if(strcmp(choice,"delete")==0) choice1=3;</p><p> else if(strcmp(choice,"attrib")==0) choice1=4;</p>
48、<p> else if(strcmp(choice,"open")==0) choice1=5;</p><p> else if(strcmp(choice,"close")==0) choice1=6;</p><p> else if(strcmp(choice,"read")==0) choice1=7;
49、</p><p> else if(strcmp(choice,"write")==0) choice1=8;</p><p> else if(strcmp(choice,"exit")==0) choice1=9;</p><p> else if(strcmp(choice,"cls")==0)
50、 choice1=10;</p><p> else if(strcmp(choice,"cd")==0) choice1=11;</p><p> else if(strcmp(choice,"help")==0) choice1=20;</p><p> else choice1=12;</p><
51、;p> switch(choice1)</p><p><b> {</b></p><p> case 1:DirF();choiceend=1;break;</p><p> case 2:CreateF();choiceend=1;if(!wgetchar) getchar();break;</p><p
52、> case 3:DeleteF();choiceend=1;if(!wgetchar)getchar();break;</p><p> case 4:ModifyFM();choiceend=1;if(!wgetchar) getchar();break;</p><p> case 5:OpenF();choiceend=1;if (!wgetchar) getchar(
53、);break;</p><p> case 6:CloseF();choiceend=1;if (!wgetchar) getchar();break;</p><p> case 7:ReadF();choiceend=1;if (!wgetchar) getchar();break;</p><p> case 8:WriteF();choiceend=
54、1;if (!wgetchar) getchar();break;</p><p> case 9:printf("\nYou have exited this system.");</p><p> QuitF();exit(0);break;</p><p> case 10:clrscr();choiceend=1;break;<
55、;/p><p> case 11:CdF();choiceend=1;break;</p><p> case 20:help();choiceend=1;break;</p><p> default:choiceend=0;</p><p><b> }</b></p><p><b
56、> }</b></p><p><b> }</b></p><p><b> else </b></p><p> printf("\nAccess denied.");</p><p><b> }</b></p>
57、;<p> void help(void)</p><p><b> {</b></p><p> printf("\nThe Command List\n");</p><p> printf("\nCd Attrib Create write Read Open Cls De
58、lete Exit Close\n");</p><p><b> }</b></p><p> char *rtrim(char *str) /*remove the trailing blanks.*/</p><p><b> {</b></p><p> int n=
59、strlen(str)-1;</p><p> while(n>=0)</p><p><b> {</b></p><p> if(*(str+n)!=' ')</p><p><b> {</b></p><p> *(str+n+1)=&
60、#39;\0';</p><p><b> break;</b></p><p><b> }</b></p><p><b> else n--;</b></p><p><b> }</b></p><p>
61、if (n<0) str[0]='\0';</p><p> return str;</p><p><b> }</b></p><p> char *ltrim(char *str) /*remove the heading blanks.*/</p><p><b> {&l
62、t;/b></p><p> strrev(str);</p><p> rtrim(str);</p><p> strrev(str);</p><p> return str;</p><p><b> }</b></p><p> void Log
63、inF() /*LOGIN FileSystem*/</p><p><b> {</b></p><p> char loginame[MAXNAME],loginpw[9],logincpw[9],str[50];</p><p> int i,j,flag=1;</p><p> char a[25];&
64、lt;/p><p> int findout; /*login user not exist*/</p><p><b> while(1)</b></p><p><b> {</b></p><p> findout=0;</p><p> printf("
65、;\n\nLogin Name:");</p><p> gets(loginame);</p><p> ltrim(rtrim(loginame));</p><p> fp_mfd=fopen("c:\\osfile\\mfd.txt","rb");</p><p> for(i
66、=0;fread(&ufd_lp,sizeof(OSUFD_LOGIN),1,fp_mfd)!=0;i++)</p><p> if (strcmp(strupr(ufd_lp.ufdname),strupr(loginame))==0)</p><p><b> {</b></p><p> findout=1;</p&g
67、t;<p> strcpy(logincpw,ufd_lp.ufdpword);</p><p><b> }</b></p><p> fclose(fp_mfd);</p><p> if (findout==1) /*user exist*/</p><p><b> {<
68、/b></p><p> printf("Login Password:");</p><p> InputPW(loginpw); /*input password,use '*' replace*/</p><p> if (strcmp(loginpw,logincpw)==0)</p><p
69、><b> {</b></p><p> strcpy(username,strupr(loginame));</p><p> strcpy(dirname,username);</p><p> fp_mfd=fopen("c:\\osfile\\mfd.txt","rb");</
70、p><p> for(j=0;fread(&ufd_lp,sizeof(OSUFD_LOGIN),1,fp_mfd)!=0;j++)</p><p><b> {</b></p><p> strcpy(str,"c:\\osfile\\");</p><p> strcat(str,uf
71、d_lp.ufdname);</p><p> strcat(str,".txt");</p><p> ufd[j]=(OSUFD*)malloc(sizeof(OSUFD));</p><p> strcpy(ufd[j]->ufdname,strupr(ufd_lp.ufdname));</p><p>
72、 fp_ufd=fopen(str,"rb");</p><p> fcount[j]=0;</p><p> for(i=0;fread(&ufd[j]->ufdfile[i],sizeof(OSFILE),1,fp_ufd)!=0;i++,fcount[j]++)</p><p><b> {</b>
73、;</p><p> ifopen[j][i].ifopen=0;</p><p> ifopen[j][i].openmode=4;</p><p><b> }</b></p><p> fclose(fp_ufd);</p><p><b> }</b><
74、;/p><p> fclose(fp_mfd);</p><p><b> ucount=j;</b></p><p> SetPANo(0);</p><p> printf("\n\nLogin successful! Welcome to this FileSystem\n\n");<
75、/p><p> loginsuc=1;</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>
76、;<p> printf("\n\n");</p><p><b> flag=1;</b></p><p> while(flag)</p><p><b> {</b></p><p> printf("Login Failed! Pass
77、word Error. Try Again(Y/N):");</p><p><b> gets(a);</b></p><p> ltrim(rtrim(a));</p><p> if (strcmp(strupr(a),"Y")==0) </p><p><b>
78、{</b></p><p> loginsuc=0;</p><p><b> flag=0;</b></p><p><b> }</b></p><p> else if(strcmp(strupr(a),"N")==0)</p><p
79、><b> {</b></p><p> loginsuc=0;</p><p><b> flag=0;</b></p><p><b> return;</b></p><p><b> }</b></p><p&g
80、t;<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>
81、 printf("New Password(<=8):");</p><p> InputPW(loginpw); /*input new password,use '*' replace*/</p><p> printf("\nConfirm Password(<=8):"); /*input new passw
82、ord,use '*' replace*/</p><p> InputPW(logincpw);</p><p> if (strcmp(loginpw,logincpw)==0)</p><p><b> {</b></p><p> strcpy(ufd_lp.ufdname,strupr(
83、loginame));</p><p> strcpy(ufd_lp.ufdpword,loginpw);</p><p> fp_mfd=fopen("c:\\osfile\\mfd.txt","ab");</p><p> fwrite(&ufd_lp,sizeof(OSUFD_LOGIN),1,fp_mfd
84、);</p><p> fclose(fp_mfd);</p><p> strcpy(username,strupr(loginame));</p><p> strcpy(dirname,loginame);</p><p> ////////////////////////////////////////////////////
85、////</p><p> strcpy(str,"c:\\osfile\\");</p><p> strcat(str,username);</p><p> strcat(str,".txt");</p><p> if((fp_ufd=fopen(str,"rb"))
86、==NULL)</p><p><b> {</b></p><p> fp_ufd=fopen(str,"wb");</p><p> fclose(fp_ufd);</p><p><b> }</b></p><p> fp_mfd=fop
87、en("c:\\osfile\\mfd.txt","rb");</p><p> for(j=0;fread(&ufd_lp,sizeof(OSUFD_LOGIN),1,fp_mfd)!=0;j++)</p><p><b> {</b></p><p> /////////////////
88、////////////////////</p><p> strcpy(str,"c:\\osfile\\");</p><p> strcat(str,ufd_lp.ufdname);</p><p> strcat(str,".txt");</p><p> ufd[j]=(OSUFD*)
89、malloc(sizeof(OSUFD));</p><p> strcpy(ufd[j]->ufdname,strupr(ufd_lp.ufdname));</p><p> fp_ufd=fopen(str,"rb");</p><p> for(i=0;fread(&ufd[j]->ufdfile[i],sizeo
90、f(OSFILE),1,fp_ufd)!=0;i++,fcount[j]++)</p><p><b> {</b></p><p> ifopen[j][i].ifopen=0;</p><p> ifopen[j][i].openmode=4;</p><p><b> }</b><
91、;/p><p> fclose(fp_ufd);</p><p><b> }</b></p><p> fclose(fp_mfd);</p><p><b> ucount=j;</b></p><p> SetPANo(0);</p><p&g
92、t; printf("\n\nLogin Successful! Welcome to this System\n\n");</p><p> loginsuc=1;</p><p><b> return;</b></p><p><b> }</b></p><p>
93、<b> else</b></p><p><b> {</b></p><p> printf("\n\n");</p><p><b> flag=1;</b></p><p> while(flag)</p><p>
94、<b> {</b></p><p> printf("Login Failed! Password Error. Try Again(Y/N):");</p><p><b> gets(a);</b></p><p> ltrim(rtrim(a));</p><p>
95、; if (strcmp(strupr(a),"Y")==0) </p><p><b> {</b></p><p> loginsuc=0;</p><p><b> flag=0;</b></p><p><b> }</b></p&g
96、t;<p> else if(strcmp(strupr(a),"N")==0)</p><p><b> {</b></p><p> loginsuc=0;</p><p><b> flag=0;</b></p><p><b> retu
97、rn;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }&l
98、t;/b></p><p><b> }</b></p><p> void SetPANo(int RorW) /*Set physical address num,0-read,1-write*/</p><p><b> {</b></p><p><b> int
99、i,j;</b></p><p> if (RorW==0)</p><p><b> {</b></p><p> if((fp_file_p=fopen("c:\\osfile\\file\\file_p.txt","rb"))==NULL)</p><p>
100、<b> {</b></p><p> fp_file_p=fopen("c:\\osfile\\file\\file_p.txt","wb");</p><p> fclose(fp_file_p);</p><p><b> }</b></p><p&
101、gt; fp_file_p=fopen("c:\\osfile\\file\\file_p.txt","rb");</p><p> ///////////////////////////////////////////////////////////////////</p><p> for(i=0;fread(&j,sizeof(i
102、nt),1,fp_file_p)!=0;i++)</p><p> fpaddrno[j]=1;</p><p> /*for(i=1;i<MAX;i++)</p><p> if ((i%13)==0) </p><p> fpaddrno[i]=1;*/</p><p><b> }<
103、;/b></p><p><b> else</b></p><p><b> {</b></p><p> fp_file_p=fopen("c:\\osfile\\file\\file_p.txt","wb");</p><p> /*for
104、(i=1;i<MAX;i++)</p><p> if((i%13)==0) </p><p> fpaddrno[i]=0;*/</p><p> for(i=0;i<MAX;i++)</p><p> if (fpaddrno[i]==1)</p><p> fwrite(&i,siz
105、eof(int),1,fp_file_p);</p><p><b> }</b></p><p> fclose(fp_file_p);</p><p><b> }</b></p><p> void InputPW(char *password) /*input password,u
106、se '*' replace*/</p><p><b> {</b></p><p><b> int j;</b></p><p> for(j=0;j<=7;j++)</p><p><b> {</b></p><p&
107、gt; password[j]=getch();</p><p> if ((int)(password[j])!=13)</p><p><b> {</b></p><p> if((int)(password[j])!=8)</p><p> putchar('*');</p>
108、<p><b> else</b></p><p><b> {</b></p><p><b> if (j>0)</b></p><p><b> {</b></p><p><b> j--;</b>
109、;</p><p><b> j--;</b></p><p> putchar('\b');putchar(' ');putchar('\b');</p><p><b> }</b></p><p><b> else j--;&
110、lt;/b></p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p> {password[j]='\0';</p><p><b>
111、; break;</b></p><p><b> }</b></p><p><b> }</b></p><p> password[j]='\0';</p><p><b> }</b></p><p> v
112、oid DirF() /*Dir FileSystem*/</p><p><b> {</b></p><p> int i,j,count=0;</p><p> char sfmode[25],sfpaddr[25],str[25];</p><p><b> clrscr();</b&g
113、t;</p><p> if (strcmp(strupr(ltrim(rtrim(dirname))),"")!=0)</p><p><b> {</b></p><p> printf("\n\nC:\\%s>dir\n",dirname);</p><p>
114、printf("\n%14s%16s%14s%10s%18s\n","FileName","FileAddress","FileLength","Type","FileMode");</p><p> j=ExistD(dirname);</p><p> for(i
115、=0;i<fcount[j];i++)</p><p><b> {</b></p><p> if ((i%16==0)&&(i!=0))</p><p><b> {</b></p><p> printf("\nPress any key to cont
116、inue..");</p><p><b> getch();</b></p><p><b> clrscr();</b></p><p> printf("\n%14s%16s%14s%10s%18s\n","FileName","FileAddress
117、","FileLength","Type","FileMode");</p><p><b> }</b></p><p> /////////////////////////////////////////////////////////</p><p> itoa(
118、ufd[j]->ufdfile[i].fpaddr,str,10);</p><p> strcpy(sfpaddr,"file");</p><p> strcat(sfpaddr,str);</p><p> if (ufd[j]->ufdfile[i].fmode==0) strcpy(sfmode,"Read
119、Only");</p><p> else if(ufd[j]->ufdfile[i].fmode==1) strcpy(sfmode,"Write Only");</p><p> else if(ufd[j]->ufdfile[i].fmode==2)strcpy(sfmode,"Read And Write");<
120、;/p><p> else strcpy(sfmode,"Protect");</p><p> printf("%14s%16s%14d%10s%18s\n",ufd[j]->ufdfile[i].fname,sfpaddr,ufd[j]->ufdfile[i].flength,"<FILE>",sfmo
121、de);</p><p><b> }</b></p><p> printf("\n %3d file(s)\n",fcount[j]);</p><p><b> }</b></p><p><b> else</b></p>&l
122、t;p><b> {</b></p><p> printf("\n\nC:\\>dir\n");</p><p> printf("\n%14s%18s%8s\n","DirName","OwnFileCount","Type");</p>
123、;<p> for(i=0;i<ucount;i++)</p><p><b> {</b></p><p> if ((i%16==0)&&(i!=0))</p><p><b> {</b></p><p> printf("\nPress
124、 any key to continue...");</p><p><b> getch();</b></p><p><b> clrscr();</b></p><p> printf("\n%14s%18s%8s\n","DirName","OwnF
125、ileCount","Type");</p><p><b> }</b></p><p> printf("%14s%18d%8s\n",ufd[i]->ufdname,fcount[i],"<UFD>");</p><p> count=count
126、+fcount[i];</p><p><b> }</b></p><p> printf("\n %3d dir(s),%5d file(s)\n",ucount,count);</p><p><b> }</b></p><p><b> }</b
127、></p><p> int ExistD(char *dirname) /*Whether DirName Exist,Exist-i,Not Exist-0*/</p><p><b> {</b></p><p><b> int i;</b></p><p> int exi
128、st=0;</p><p> for(i=0;i<ucount;i++)</p><p> if (strcmp(strupr(ufd[i]->ufdname),strupr(dirname))==0)</p><p><b> {</b></p><p><b> exist=1;<
129、/b></p><p><b> break;</b></p><p><b> }</b></p><p> if (exist) return(i);</p><p> else return(-1);</p><p><b> }</b&
130、gt;</p><p> void CdF() /*Exchange Dir*/</p><p><b> {</b></p><p> char dname[MAXNAME];</p><p> printf("\nPlease input DirName (cd..-Previous dir; Di
131、rNAME-cd [DirNAME]):");</p><p> gets(dname);</p><p> ltrim(rtrim(dname));</p><p> if (ExistD(dname)>=0) strcpy(dirname,strupr(dname));</p><p><b> els
132、e </b></p><p> if(strcmp(strupr(dname),"CD..")==0) strcpy(ltrim(rtrim(dirname)),"");</p><p> else printf("\nError.\'%s\' does not exist.\n",dname);
133、</p><p><b> }</b></p><p> void CreateF() /*Create File*/</p><p><b> {</b></p><p> int fpaddrno,flag=1,i;</p><p> char fname[M
134、AXNAME],str[50],str1[50],a[25];</p><p> char fmode[25];</p><p> if (strcmp(strupr(dirname),strupr(username))!=0)</p><p><b> {</b></p><p> printf("\
135、nError. You must create file in your own dir.\n");</p><p> wgetchar=1;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>
136、;</p><p> printf("\nPlease input FileName:");</p><p> gets(fname);</p><p> ltrim(rtrim(fname));</p><p> if (ExistF(fname)>=0)</p><p><b
137、> {</b></p><p> printf("\nError. Name \'%s\' has already existed.\n",fname);</p><p> wgetchar=1;</p><p><b> }</b></p><p><
138、b> else</b></p><p><b> {</b></p><p> printf("Please input FileMode(0-Read Only, 1-Write Only, 2-Read and Write, 3-Protect):");</p><p> gets(fmode)
139、;</p><p> ltrim(rtrim(fmode));</p><p> if((strcmp(fmode,"0")==0)||(strcmp(fmode,"1")==0)||(strcmp(fmode,"2")==0)||(strcmp(fmode,"3")==0))</p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設計二級文件系統(tǒng)
- 操作系統(tǒng)課程設計----二級文件系統(tǒng)
- 操作系統(tǒng)課程設計--二級文件系統(tǒng)設計
- 操作系統(tǒng)課程設計--二級文件系統(tǒng)(java)
- 操作系統(tǒng)課程設計linux二級文件系統(tǒng)設計
- 操作系統(tǒng)課程設計--簡單二級文件系統(tǒng)
- 操作系統(tǒng)課程設計報告--linux二級文件系統(tǒng)設計
- 操作系統(tǒng)課程設計--模擬文件系統(tǒng)
- 操作系統(tǒng)課程設計--樹形目錄文件系統(tǒng)
- 操作系統(tǒng)課程設計報告--多級文件系統(tǒng)
- 操作系統(tǒng)課程設計報告--多級文件系統(tǒng)
- 操作系統(tǒng)課程設計---文件系統(tǒng)的模擬
- 操作系統(tǒng)課程設計---模擬文件系統(tǒng)
- 操作系統(tǒng)課程設計--為linux系統(tǒng)設計一個簡單的二級文件系統(tǒng)
- 操作系統(tǒng)課程設計-模擬文件系統(tǒng)
- 操作系統(tǒng)課程設計報告--多級文件系統(tǒng)
- 操作系統(tǒng)文件系統(tǒng)的設計與實現(xiàn)課程設計
- 操作系統(tǒng)課程設計報告--多級文件系統(tǒng).doc
- 操作系統(tǒng)課程設計簡單文件系統(tǒng)的實現(xiàn)
- 操作系統(tǒng)課程設計(文件系統(tǒng)管理)
評論
0/150
提交評論