文件系統(tǒng)存儲(chǔ)空間管理模擬試驗(yàn)報(bào)告要點(diǎn)_第1頁
文件系統(tǒng)存儲(chǔ)空間管理模擬試驗(yàn)報(bào)告要點(diǎn)_第2頁
文件系統(tǒng)存儲(chǔ)空間管理模擬試驗(yàn)報(bào)告要點(diǎn)_第3頁
文件系統(tǒng)存儲(chǔ)空間管理模擬試驗(yàn)報(bào)告要點(diǎn)_第4頁
文件系統(tǒng)存儲(chǔ)空間管理模擬試驗(yàn)報(bào)告要點(diǎn)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)驗(yàn)名稱文件系統(tǒng)存儲(chǔ)空間管理模擬學(xué) 號(hào)_實(shí)驗(yàn)日期_指導(dǎo)老師_一、實(shí)驗(yàn)?zāi)康母鶕?jù)提出的文件分配和釋放請(qǐng)求,動(dòng)態(tài)顯示磁盤空閑空間的 態(tài)以及文件目錄的變化,以位示圖和索引分配為例:每次執(zhí)行請(qǐng)求后要求顯示或 打印位示圖的修改位置、分配和回收磁盤的物理塊地址、更新的位示圖、目錄。二、實(shí)驗(yàn)原理用數(shù)組表示位示圖,其中的每一位對(duì)應(yīng)磁盤一個(gè)物理塊的狀態(tài),0 表示、空閑,1 表示分配;當(dāng)請(qǐng)求分配一個(gè)磁盤塊時(shí),尋找到數(shù)組中為0 的位,計(jì)算相對(duì)磁盤塊號(hào),并計(jì)算其在磁盤中的物理地址(柱面號(hào)、磁道號(hào)、物理塊號(hào)) ,并 將其狀態(tài)由 0 變到 1。當(dāng)釋放某一物理塊時(shí),已知其在磁盤中的物理地址,計(jì)算 其相對(duì)磁盤塊號(hào),再找到位示圖

2、數(shù)組中的相應(yīng)位,將其狀態(tài)由1 變?yōu)?0。三、主要儀器設(shè)備PC 機(jī)(含有 VC四、實(shí)驗(yàn)內(nèi)容與步驟實(shí)驗(yàn)內(nèi)容:1.模擬文件空間分配、釋放過程,可選擇連續(xù)分配、鏈?zhǔn)椒峙洹?索引分配方法;2.文件空閑空間管理,可采用空白塊鏈、空白目錄、位示圖方 法;步驟如下:1輸入磁盤基本信息參數(shù),計(jì)算位示圖大小,并隨機(jī)初始化位示圖;(1) 磁盤基本信息:磁盤柱面數(shù) m,每柱面磁道數(shù) p,每磁道物理塊數(shù) q;(2) 假設(shè)采用整數(shù)數(shù)組存放位示圖,則數(shù)組大小為:Size= ceil (柱面數(shù)*每柱面磁道數(shù)*每磁道物理塊數(shù))/( sizeof(int)*8 )(3) 申請(qǐng)大小為 size 的整數(shù)數(shù)組 map 并對(duì)其進(jìn)行隨機(jī)初

3、始化。例如:假設(shè) m=2, p=4, q=8, 共有 64 個(gè)磁盤塊,若 sizeof(int)=2, 則 位示圖大小為 4,map4如下:1514131211109876543210map00011010011001010map11010110000110000map2011001110011001map31000100001100110位示圖中每一位對(duì)應(yīng)的相對(duì)磁盤塊號(hào)如下圖,磁盤塊號(hào)由小到大對(duì)應(yīng)于數(shù)組的低 地址到高地址位上。即 map0的第 0 位到第 15 位分別對(duì)應(yīng) 0 號(hào)磁盤塊到 15 號(hào) 磁盤塊的狀態(tài),map1的第 0 位到第 15 位對(duì)應(yīng) 16 號(hào)磁盤塊到 31 號(hào)磁盤塊的狀 態(tài)

4、,以此類推。1514131211109876543210map01514131211109 187 :6543210map1 31302928272625242322212019181716map2 4746 4544434241403938373635343332課程名稱 計(jì)算機(jī)操作系統(tǒng)姓 名_專業(yè)班級(jí)_成 績(jī)_map3 6362 6160J tVt、tA A595857565554535251504948如 上 表 所 示 , 2 9 號(hào) 磁 盤 的 狀 態(tài) 存 在m a p 1 中 , 對(duì) 應(yīng) 于 第 1 3 位 ;2. 輸出初始位示圖信息;3. 輸入文件分配或釋放請(qǐng)求,(1)格式:“

5、+文件名申請(qǐng)塊數(shù)” 或“-文件名” “ +”表示申請(qǐng)文件分配,“-”表示刪除文件如:+ F1 54.根據(jù)請(qǐng)求完成相應(yīng)操作。(1)若為分配申請(qǐng) x 個(gè)盤塊,則在位示圖中找到 x 個(gè)為 0 的位,將其修改為“ 1”,計(jì)算相應(yīng)具體物理設(shè)備的柱面號(hào) C、磁道號(hào) H 和物理塊號(hào) R,并將 CHF 地址或相對(duì)磁盤塊號(hào)記錄在文件目錄中。輸出位示圖修改位置、分配的磁盤塊CHR地址、修改后的目錄和位示圖信息。否則,空間不夠,退出執(zhí)行下一條請(qǐng)求;計(jì)算公式如下:a.已知位示圖中的下標(biāo) i , j, 計(jì)算相對(duì)塊號(hào)Block= i*sizeof( int )*8+jb.已知相對(duì)塊號(hào)計(jì)算柱面、磁道、物理塊號(hào)如下:柱面號(hào)

6、C=相對(duì)塊號(hào)/ (每柱面磁道數(shù)*每磁道物理塊數(shù))磁道號(hào) H=相對(duì)塊號(hào)(每柱面磁道數(shù)*每磁道物理塊數(shù))/每磁道物理 塊數(shù)物理塊號(hào) R=相對(duì)塊號(hào)磁道物理塊數(shù)文件目錄如下(以索引表分配為例):文件名首個(gè)物理塊 CHR塊個(gè)數(shù)索引表beta地址(0, 0, 0)2(0,0,0)(0,0,1)Alpha(2,3,0)3(2,3,0)Toyota43(4 9 12)Sony(文件名首個(gè)物理塊地址(相對(duì)), ,塊個(gè)數(shù)索引表beta(相對(duì)丿丿 02(0,2,3)Alpha33(3,6,7)Toyota83(8, 9,12)(2 )若為刪除申請(qǐng),則從目錄中找到要?jiǎng)h除的文件所在的目錄項(xiàng),讀取索引 表,依次讀取文件相

7、應(yīng)的盤塊 CHR 地址,計(jì)算該盤塊的相對(duì)磁盤塊號(hào),再計(jì)算其相應(yīng)信息在 位示圖中的位置(i,j),將位示圖中的相應(yīng)位有“ 1”改為“ 0”,并從目錄中刪 除該目錄項(xiàng)。輸出刪除的磁盤塊 CHR 地址、相應(yīng)位示圖修改位置、修改過的位示 圖和目錄。計(jì)算過程如下:相對(duì)磁盤塊號(hào)=柱面號(hào)*每柱面磁道數(shù)*每磁道物理塊數(shù)+ 磁道號(hào)*每磁道物理塊數(shù)+物理塊號(hào)i = 相對(duì)磁盤塊號(hào)/ (sizeof(int)*8) j = 相對(duì)磁盤塊號(hào)% (sizeof(int)*8)五、實(shí)驗(yàn)流程圖文flS-File存入系統(tǒng)*STUe為文件名.M為申請(qǐng)塊數(shù)NN空白區(qū)可用?Yk 吠于、 最后-”個(gè)空白 、區(qū)號(hào)/保存字白區(qū)首塊號(hào)宜空肓區(qū)

8、號(hào)f=l圖一 文件空閑區(qū)分配算法hlNN僅有上鄰F*中百塊號(hào)+ 庫空白塊!汁1狀豈出“未分配.?畢中前苗塊號(hào)+ 1)欄申首戰(zhàn)圖二文件空閑區(qū)回收算法丿崔屮/欄申當(dāng)塊対三杏亨白XftH錄表麗陳/+1欄條目Y有上郵有下斃丫和有上鄰也有下卻 徉中肯決號(hào)環(huán)曼| J欄空A按敘帀/欄中空白塊徽+7+1 杓中空甘塊載卄日空包文芹目幀中増加一條目0T塊號(hào)寸空甲塊融-樣左=劇隱文刑首塊號(hào)H斛險(xiǎn)丈件塊數(shù)請(qǐng)求刷除一牛文件”釋軟空劇六、實(shí)驗(yàn)代碼#include stdio.h#include #include #include int physic100; /文件地址緩沖區(qū)int style=1;/文件的類型char

9、cur_dir10=root; /當(dāng)前目錄struct commandchar com10;cmd13;struct block int n;/空閑的盤快的個(gè)數(shù)int free50;/存放空閑盤快的地址int a;/模擬盤快是否被占用memory20449;struct block_superint n;/空閑的盤快的個(gè)數(shù)int free50;/存放進(jìn)入棧中的空閑塊int stack50;/存放下一組空閑盤快的地址super_block;struct node/i結(jié)點(diǎn)信息int file_style;/i結(jié)點(diǎn) 文件類型int file_length;/i結(jié)點(diǎn) 文件長(zhǎng)度int file_addr

10、ess100; /i結(jié)點(diǎn) 文件的物理地址 i_node640;struct dir/目錄項(xiàng)信息char file_name10;/文件名int i_num;/文件的結(jié)點(diǎn)號(hào)char dir_name10; /文件所在的目錄 root640;void format()/格式化int i,j,k;super_block.n=50; for(i=0;i50;i+) /超級(jí)塊初始化 super_block.freei=i; /存放進(jìn)入棧中的空閑塊super_block.stacki=50+i; /存放下一組的盤塊for(i=0;i640;i+) /i結(jié)點(diǎn)信息初始化for(j=0;j100;j+)i_no

11、dei.file_addressj=-1;/文件地址i_nodei.file_length=-1; /文件長(zhǎng)度i_nodei.file_style=-1; /文件類型for(i=0;i640;i+)/根目錄區(qū)信息初始化strcpy(rooti.file_name,);rooti.i_num=-1; strcpy(rooti.dir_name,);for(i=0;i20449;i+)/存儲(chǔ)空間初始化memoryi.n=0;/必須有這個(gè)memoryi.a=0;for(j=0;j50;j+) memoryi.freej=-1;for(i=0;i20449;i+)/將空閑塊的信息用成組鏈接的方法寫進(jìn)每

12、組的最后一個(gè)塊中/存儲(chǔ)空間初始化if(i+1)%50=0)k=i+1;for(j=0;j50;j+)if(k20450)memoryi.freej=k;/下一組空閑地址memoryi.n+; /下一組空閑個(gè)數(shù)注意在memoryi.n+之前要給其賦初值k+;elsememoryi.freej=-1;memoryi.a=0; /標(biāo)記為沒有使用continue; /處理完用于存儲(chǔ)下一組盤塊信息的特殊盤塊后,跳過本次循環(huán)for(j=0;j50;j+)memoryi.freej=-1;memoryi.n=0;printf(已經(jīng)初始化完畢n);printf(進(jìn)入U(xiǎn)NIX文件模擬 .nn);void wri

13、te_file(FILE *fp)/將信息讀入系統(tǒng)文件中int i; fp=fopen(system,wb); for(i=0;i20449;i+) fwrite(&memoryi,sizeof(struct block),1,fp);fwrite(&super_block,sizeof(struct block_super),1,fp);for(i=0;i640;i+) write(&i_nodei,sizeof(struct node),1,fp);for(i=0;i640;i+) fwrite(&rooti,sizeof(struct dir),1,fp)

14、;fclose(fp);void read_file(FILE *fp)/讀出系統(tǒng)文件的信息 int i;fp=fopen(system,rb); for(i=0;i20449;i+) fread(&memoryi,sizeof(struct block),1,fp);fread(&super_block,sizeof(struct block_super),1,fp); for(i=0;i640;i+) fread(&i_nodei,sizeof(struct node),1,fp);for(i=0;i=0;i-)k=physici;/需要提供要回收的文件的地址m=4

15、9-super_block.n;/回收到棧中的哪個(gè)位置if(super_block.n=50)/注意 當(dāng)super_block.n=50時(shí)m=-1;的值 /super_block.n=50的時(shí)候棧滿了, 要將這個(gè)棧中的所有地址信息寫進(jìn)下一個(gè)地 址中for(j=0;j50;j+)memoryk.freej=super_block.freej;super_block.n=0;memoryk.n=50;memoryk.a=0;if(m=-1) m=49;/將下一個(gè)文件地址中的盤塊號(hào)回收到棧底中, 這個(gè)地址中存放著剛才滿棧的地址的信息super_block.freem=physici; /將下一個(gè)文件

16、地址中的盤塊號(hào)回收到棧中super_block.n+;void allot(int length)/分配空間 int i,j,k,m,p;for(i=0;ilength;i+)k=50-super_block.n;/超級(jí)塊中表示空閑塊的指針m=super_block.freek;/棧中的相應(yīng)盤塊的地址p=super_block.free49;/棧中的最后一個(gè)盤塊指向的地址if(m=-1|memoryp.a=1) /檢測(cè)是否還有下一組盤塊printf(內(nèi)存不足,不能夠分配空間n);callback(length);break;if(super_block.n=1)memorym.a=1;/將最后

17、一個(gè)盤塊分配掉physici=m;super_block.n=0;for(j=0;jmemorym.n;j+) /從最后一個(gè)盤塊中取出下一組盤塊號(hào)寫入棧中super_block.freej=memorym.freej;super_block.n+;continue;/要跳過這次循環(huán),下面的語句在IF中已經(jīng)執(zhí)行過physici=m;/棧中的相應(yīng)盤塊的地址寫進(jìn) 文件地址緩沖區(qū)memorym.a=1;super_block.n-;void create_file(char filename,int length) /創(chuàng)建文件int i,j;for(i=0;i640;i+)if(strcmp(file

18、name,rooti.file_name)=0)printf(文件已經(jīng)存在,不允許建立重名的文件n);return;for(i=0;i640;i+)if(rooti.i_num=-1)rooti.i_num=i;strcpy(rooti.file_name,filename);strcpy(rooti.dir_name,cur_dir); /把當(dāng)前目錄名 給新建立的文件i_nodei.file_style=style;i_nodei.file_length=length;allot(length);for(j=0;jlength;j+)i_nodei.file_addressj=physicj

19、;break;void create_dir(char filename)/創(chuàng)建目錄style=0;/0代表文件類型是目錄文件create_file(filename,4);style=1;/用完恢復(fù)初值,因?yàn)槿肿兞?,否則void del_file(char filename)/刪除文件int i,j,k;for(i=0;i640;i+)if(strcmp(filename,rooti.file_name)=0)k=rooti.i_num;for(j=0;ji_nodek.file_length;j+)physicj=i_nodek.file_addressj;callback(i_node

20、k.file_length); /調(diào)用 回收函數(shù)for(j=0;j100;j+) /刪除文件后要將文件屬性和目錄項(xiàng)的各個(gè)值恢復(fù)初值i_nodek.file_addressj=-1; /地址恢復(fù)初值strcpy(rooti.file_name,); /文件名恢復(fù)初值rooti.i_num=-1;/目錄項(xiàng)的I結(jié)點(diǎn)信息恢復(fù)初值strcpy(rooti.dir_name,); /目錄項(xiàng)的文件目錄信息恢復(fù)初值i_nodek.file_length=-1; /文件長(zhǎng)度恢復(fù)i_nodek.file_style=-1;/文件類型恢復(fù)初值break;if(i=640)printf(不存在這個(gè)文件n);void

21、del_dir(char filename)/刪除目錄 需要判斷目錄下時(shí)候?yàn)榭?不為空就不刪除int i,j,k;for(i=0;i640;i+) /還要加條件判斷要?jiǎng)h除的目錄是不是當(dāng)前目錄k=rooti.i_num;/找到目錄名字if( strcmp(rooti.file_name,filename)=0 & strcmp(cur_dir,filename)!=0 &(i_nodek.file_style)=0 )for(j=0;j640;j+)if(strcmp(filename,rootj.dir_name)=0)printf(目錄不為空不能直接刪除n);break;if

22、(j=640)del_file(filename);break;break;if(i=640)printf(這個(gè)不是目錄文件 或者不存在這個(gè)目錄,或者你要?jiǎng)h除的是當(dāng)前目錄n);void display_curdir() /顯示當(dāng)前目錄下的文件列表int i,k;printf(tt文件名字 文件類型 文件長(zhǎng)度 所屬目錄n); for(i=0;i640;i+)if(strcmp(cur_dir,rooti.dir_name)=0)/查詢文件中 所在目錄信息和當(dāng)前目錄信息相同的數(shù)據(jù)k=rooti.i_num;printf(tt %st,rooti.file_name); /文件名printf(t%d

23、t,i_nodek.file_style);/文件的類型printf(%dt,i_nodek.file_length);/文件的長(zhǎng)度printf(%sn,rooti.dir_name);/文件所在的目錄void display_dir(char filename)/進(jìn)入指定的目錄int i,k;for(i=0;i640;i+)k=rooti.i_num;/判斷文件類型是不是目錄類型if(strcmp(filename,rooti.file_name)=0) & (i_nodek.file_style=0)strcpy(cur_dir,filename);/將要進(jìn)入的指定目錄設(shè)置為當(dāng)前目

24、錄strcpy(目的,源)break;賦值不要反了if(i=640)printf(沒有這個(gè)目錄n);void open_file(char filename)/打開文件int i,j,k;printf(tt文件名字 文件類型 文件長(zhǎng)度 所屬目錄n); for(i=0;i640;i+)k=rooti.i_num;if(strcmp(filename,rooti.file_name)=0 & (i_nodek.file_style=1)printf(tt %st,rooti.file_name);/文件名printf(t%dt,i_nodek.file_style); /文件的類型prin

25、tf(%dt,i_nodek.file_length);/文件的長(zhǎng)度printf(%sn,rooti.dir_name); /文件所在的目錄printf(tt文件占用的物理地址n);for(j=0;ji_nodek.file_length;j+)/顯示物理地址printf(%d ,i_nodek.file_addressj); /文件具體占用的盤塊號(hào)printf(n);break;if(i=640)printf(沒有這個(gè)文件 或者這個(gè)文件不是正規(guī)文件n);void back_dir()/返回上一級(jí)目錄int i,k;for(i=0;i640;i+) /查詢和當(dāng)前目錄名相同的目錄文件名k=roo

26、ti.i_num; if(strcmp(cur_dir,rooti.file_name)=0 & (i_nodek.file_style=0)strcpy(cur_dir,rooti.dir_name); /將查詢到的目錄文件名 所在的目錄賦值給當(dāng)前目錄void display_sys()/顯示系統(tǒng)信息(磁盤使用情況)int i,m,k=0;for(i=0;i20449;i+)if(memoryi.a=0)k+;m=20449-k;printf(空閑的盤塊數(shù)是:t);printf(%dn,k);printf(使用的盤塊數(shù)是:t);printf(%dn,m);int MA4;/*空閑塊數(shù)

27、組*/int A94=3,1,2,3,3,4,5,6,0,0,0,0,0,0,0,0,3,0,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;/*磁盤空間*/int mark9; /*存放已分配的塊*/ int No=0;/*已分配的塊數(shù)*/void display1() int i,j,temp,count;No=0; if(MA1!=0) i=MA0;printf(ngroup1:); for(j=1;j=i;j+) printf(%d ,MAj);mark+No=MAj;temp=MA1;count=2; while(Atemp1!=0) printf(ngrou

28、p%d:,count); i=Atemp0; for(j=1;j=i;j+) printf(%d ,Atempj);mark+No=Atempj;count+; temp=Atemp1;printf(ngroup%d:,count); i=Atemp0; for(j=2;j0) printf(%d ,Atempj);mark+No=Atempj;void help()/顯示幫助信息printf(*n);printf(*以下是文件管理已分配盤塊printf(* 1.初始化printf(* 2.查看當(dāng)前目錄文件列表- printf(* 3.查看文件printf(* 4. printf(* 5. p

29、rintf(* 6. printf(* 7. printf(* 8.printf(* 9. printf(* 10.返回上一級(jí)目錄printf(* 11.顯示幫助命令- printf(* 12.退出文件模擬- printf(* 13,進(jìn)入成組鏈接-printf(*n);*n);cat- (cat +空格+-ls+空格文件名format *n);-dir文件名查看系統(tǒng)信息 -創(chuàng)建目錄 -md- (md創(chuàng)建文件-vi-(vi +空格+刪除文件 -del- (del +刪除目錄 -deldir-(del +進(jìn)入當(dāng)前目錄下的指定目錄cd-(cd +空格*n); ) *n);*n);+目錄名) *n);

30、+文件長(zhǎng)度) *n);空格+文件名) *n);空格+目錄名) *n);+目錄名) *n);-cd.*n);help*n);quit*n);guo*n);else i=MA0;if(i=1) printf(nThe blocks are all assigned);else printf(ngroup1:); for(j=2;j=i;j+) printf(%d ,MAj);mark+No=MAj;void display() /*顯示分組情況*/ int i,j; if(MA0!=0) display1();else i=MA1;for(j=0;j1) /*若該組不止一個(gè)空閑塊*/ i=MA0;

31、 s=MAi; MA0-; printf(nnumber of the block:%d,s);else if(MA0=1)/*只剩一個(gè)空閑塊*/ if(MA1!=0)/*還有其它空閑塊組*/ s=MA1;for(i=0;i=3;i+) A0i=Asi;MA0-; printf(nnumber of the block:%d,s);else/*沒有其它空閑塊組*/ printf(nThere isnt any space); return;else /*當(dāng)前組已分配完*/ for(i=0;i=3;i+)MAi=A0i; assign();display();/*顯示分組情況*/void cal

32、lback()/*回收空閑塊*/ int i,j,temp;printf(ninput the No. of the block you want to callback:); scanf(%d,&j);getchar(); /*得到待回收的空閑塊號(hào)*/ for(temp=1;temp=No;temp+) if(marktemp=j) break;if(tempNo+1)/*若該空閑塊已在,退出*/ printf(nThe block is in the disk); return;if(MA03) /*當(dāng)前組不滿3塊*/ i=MA0; MAi+1=j; MA0+;else/*已有3塊

33、*/ for(i=0;i=3;i+)Aji=MAi;MA0=1; MA1=j;display();/*顯示*/int filecontrol();void menu() /*功能選擇函數(shù)*/ int choice;char judge; printf(文件管理空間管理n);printf(ninput your choice:(1-assign,2-callback,3-backtofilecontrol):n);scanf(%d,&choice);getchar(); if(choice=1)assign();else if(choice=2)callback();else if(ch

34、oice=3) filecontrol();else printf(ninvalid command!); printf(ncontinue ornot?(y-Yes,n-Not):); scanf(%c,&judge); getchar();if(judge=y)menu();else printf(nNow the graph is:); display();printf(npress any key to quit); getchar();void guolink() int i;for(i=0;i=3;i+) MAi=A0i;display(); menu();int file

35、control()/主函數(shù) int i, j=0,p,len=0;char tmp10,com10,tmp110,k; struct command tmp210;FILE *fp;help();strcpy(,format);/將各個(gè)命令存進(jìn)命令表strcpy(,dir);strcpy(,cat);strcpy(,ls);strcpy(,md);strcpy(,vi);strcpy(,del);strcpy(,deldir);strcpy(,cd);strcpy(,cd.);strcpy(,help);strcpy(,quit);strcpy(,guo);if(fp=fopen(system

36、,rb)=NULL) /判斷系統(tǒng)文件是否存在printf(can not open filen);printf(format the disk Y / N n);scanf(%c,&k);if(k=y)format();elseread_file(fp); /讀取系統(tǒng)文件的內(nèi)容while(1)j=0;/必須重新給恢復(fù)0否則出錯(cuò)strcpy(tmp,cur_dir); while(strcmp(tmp,root)!=0)for(i=0;i=0;i-)printf(%s/,);scanf(%s,com);/輸入命令并且查找命令的相關(guān)操作for(i=0;i13;i+)if(strcmp(co

37、m,)=0)p=i;break;if(i=13) /如果沒有這個(gè)語句以后輸入的命令都和第一次輸入的效果一樣p=14; /隨便的一個(gè)值switch(p)case 0: format();/初始化break;case 1: display_curdir();/查看當(dāng)前目錄下的文件列表break;case 2: scanf(%s,tmp);/查看文件open_file(tmp); break;case 3: display_sys();/查看系統(tǒng)信息break;case 4:scanf(%s,tmp); /創(chuàng)建目錄create_dir(tmp);break;case 5: scanf(%s,tmp);/創(chuàng)建文件scanf(%d,&len); create_file(tmp,len); break;case 6: scanf(%s,tmp);/刪除文件for(i=0;i640;i+)/判斷文件是不是正規(guī)文件j=rooti.i_num;if(strcmp(tmp,rooti.file_name)=0 & (i_nodej.file_style)=1)del_file(tmp); break;if(i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論