操作系統(tǒng)課程設(shè)計(jì)-文件系統(tǒng)_第1頁(yè)
操作系統(tǒng)課程設(shè)計(jì)-文件系統(tǒng)_第2頁(yè)
操作系統(tǒng)課程設(shè)計(jì)-文件系統(tǒng)_第3頁(yè)
操作系統(tǒng)課程設(shè)計(jì)-文件系統(tǒng)_第4頁(yè)
操作系統(tǒng)課程設(shè)計(jì)-文件系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)號(hào)*學(xué)院課 程 設(shè) 計(jì)課程名稱 操作系統(tǒng)課程設(shè)計(jì)題目 為L(zhǎng)INUX 設(shè)計(jì)一個(gè)簡(jiǎn)單的二級(jí)文件系統(tǒng)專 業(yè) * 班 級(jí) * 姓 名 * 成 績(jī) 指導(dǎo)教師 * 2011年1月17日 至 2011年1月21日課程設(shè)計(jì)任務(wù)書(shū)設(shè)計(jì)題目:為L(zhǎng)INUX 設(shè)計(jì)一個(gè)簡(jiǎn)單的二級(jí)文件系統(tǒng)設(shè)計(jì)目的:1、通過(guò)一個(gè)簡(jiǎn)單多用戶文件系統(tǒng)的設(shè)計(jì),加深理解文件系統(tǒng)的內(nèi)部功能及內(nèi)部實(shí)現(xiàn)。2、提高學(xué)生的程序設(shè)計(jì)能力、 提高算法設(shè)計(jì)質(zhì)量與程序設(shè)計(jì)素質(zhì) 。設(shè)計(jì)任務(wù):(在規(guī)定的時(shí)間內(nèi)完成下列任務(wù))為L(zhǎng)INUX 設(shè)計(jì)一個(gè)簡(jiǎn)單的二級(jí)文件系統(tǒng)。要求做到以下幾點(diǎn):1、可以實(shí)現(xiàn)下列幾條命令(至少4條)Login用戶登錄Dir列文件目錄Create創(chuàng)建

2、文件Delete刪除文件Open打開(kāi)文件Close關(guān)閉文件Read讀文件Write寫(xiě)文件2、列目錄時(shí)要列出文件名、物理地址、保護(hù)碼和文件長(zhǎng)度。3、源文件可以進(jìn)行讀寫(xiě)保護(hù)。時(shí)間安排: 1月 17日 布置課程設(shè)計(jì)任務(wù);分配題目后,查閱資料、 準(zhǔn)備程序; 1月 18日1月20 日上機(jī)調(diào)試程序、書(shū)寫(xiě)課程設(shè)計(jì)報(bào)告;1月21 日上午提交課程設(shè)計(jì)報(bào)告及相關(guān)文檔。地點(diǎn):學(xué)校機(jī)房(具體見(jiàn)現(xiàn)代教育中心大屏幕安排)具體要求:1、課程設(shè)計(jì)報(bào)告按統(tǒng)一通用格式書(shū)寫(xiě),具體格式要求請(qǐng)?jiān)诰W(wǎng)絡(luò)上查閱2、每位學(xué)生應(yīng)獨(dú)立完成各自的任務(wù)且每天至少在設(shè)計(jì)室工作半天指 導(dǎo) 教 師 簽 名: 11年 1月 7日教研室主任(或責(zé)任教師)簽名:

3、 11年 1月 7 日目錄一 項(xiàng)目概述4二.課程設(shè)計(jì)設(shè)計(jì)題目4三.開(kāi)發(fā)語(yǔ)言及實(shí)現(xiàn)平臺(tái)或?qū)嶒?yàn)環(huán)境4四.設(shè)計(jì)目的4五.設(shè)計(jì)內(nèi)容45.1.任務(wù)45.2.主程序流程圖5六.程序設(shè)計(jì)56.1.設(shè)計(jì)思想56.2.設(shè)計(jì)要求5七.設(shè)計(jì)原理67.1.外存管理67.2.linux的EXT2文件系統(tǒng)67.3.用內(nèi)存來(lái)模擬外存67.4.編碼7八.測(cè)試界面15九.參考文獻(xiàn)17十.設(shè)計(jì)心得體會(huì)17十一.設(shè)計(jì)過(guò)程中的疑問(wèn)18十二.指導(dǎo)教師評(píng)語(yǔ)18一項(xiàng)目概述Linux是一個(gè)性能穩(wěn)定、功能強(qiáng)大、效率高的操作系統(tǒng)。它在功能特性方面與Unix系統(tǒng)相似,同時(shí)又具有多任務(wù)、多用戶、多平臺(tái)等若干特性。Linux的源代碼是開(kāi)放的,閱讀Li

4、nux源代碼,無(wú)疑是深入學(xué)習(xí)Linux的最好方法。 文件系統(tǒng)是Linux操作系統(tǒng)的重要組成部分,Linux文件具有強(qiáng)大的功能。文件系統(tǒng)中的文件是數(shù)據(jù)的集合,文件系統(tǒng)不僅包含著文件中的數(shù)據(jù)而且還有文件系統(tǒng)的結(jié)構(gòu),所有Linux 用戶和程序看到的文件、目錄、軟連接及文件保護(hù)信息等都存儲(chǔ)在其中。二. 課程設(shè)計(jì)設(shè)計(jì)題目課程設(shè)計(jì)題目:Linux二級(jí)文件系統(tǒng)設(shè)計(jì)三. 開(kāi)發(fā)語(yǔ)言及實(shí)現(xiàn)平臺(tái)或?qū)嶒?yàn)環(huán)境開(kāi)發(fā)語(yǔ)言:C+/VC+實(shí)現(xiàn)平臺(tái)(環(huán)境):visual C+、window xp、VMware Workstation(虛擬機(jī)) V6.0.2、Red Hat Enterprise Linux os、office 2

5、003四. 設(shè)計(jì)目的(1)本實(shí)驗(yàn)的目的是通過(guò)一個(gè)簡(jiǎn)單多用戶文件系統(tǒng)的設(shè)計(jì),加深理解文件系統(tǒng)的內(nèi)部功能和內(nèi)部實(shí)現(xiàn)。(2)結(jié)合數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計(jì)、計(jì)算機(jī)原理等課程的知識(shí),設(shè)計(jì)一個(gè)二級(jí)文件系統(tǒng),進(jìn)一步理解操作系統(tǒng)。(3)通過(guò)分對(duì)實(shí)際問(wèn)題的分析、設(shè)計(jì)、編程實(shí)現(xiàn),提高學(xué)生實(shí)際應(yīng)用、編程的能力五. 設(shè)計(jì)內(nèi)容5.1. 任務(wù)為L(zhǎng)inux系統(tǒng)設(shè)計(jì)一個(gè)簡(jiǎn)單的二級(jí)文件系統(tǒng)。要求做到以下幾點(diǎn):1.可以實(shí)現(xiàn)下列幾條命令:login 用戶登錄dir 列目錄create 創(chuàng)建文件delete 刪除文件open 打開(kāi)文件close 關(guān)閉文件read 讀文件write 寫(xiě)文件cd 進(jìn)出目錄2列目錄時(shí)要列出文件名,物理地址,保護(hù)

6、碼和文件長(zhǎng)度3源文件可以進(jìn)行讀寫(xiě)保護(hù)5.2. 主程序流程圖結(jié)束初始化文件目錄表初始化已打開(kāi)文件表輸入用戶名主文件目錄中又該用戶?輸入文件操作命令分析命令建立子程序打開(kāi)子程序關(guān)閉子程序讀子程序?qū)懽映绦騽h除子程序開(kāi)始無(wú)此用戶名否是createopenclosereadwritedelete圖1 主程序流程圖六. 程序設(shè)計(jì)6.1. 設(shè)計(jì)思想本文件系統(tǒng)采用兩級(jí)目錄,其中第一級(jí)對(duì)應(yīng)于用戶賬號(hào),第二級(jí)對(duì)應(yīng)于用戶帳號(hào)下的文件。另外,為了簡(jiǎn)便文件系統(tǒng)未考慮文件共享,文件系統(tǒng)安全以及管道文件與設(shè)備文件等特殊內(nèi)容。首先應(yīng)確定文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu):主目錄、子目錄及活動(dòng)文件等。主目錄和子目錄都以文件的形式存放于磁盤,這

7、樣便于查找和修改。用戶創(chuàng)建的文件,可以編號(hào)存儲(chǔ)于磁盤上。如:file0,file1,file2并以編號(hào)作為物理地址,在目錄中進(jìn)行登記。6.2. 設(shè)計(jì)要求理解Linux的文件系統(tǒng)的組織;掌握常用的數(shù)據(jù)結(jié)構(gòu);系統(tǒng)采用兩級(jí)目錄,其中第一級(jí)對(duì)應(yīng)于用戶賬號(hào),第二級(jí)對(duì)應(yīng)于用戶帳號(hào)下的文件;使用文件來(lái)模擬外存,進(jìn)行數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和操作算法的設(shè)計(jì),實(shí)現(xiàn)一個(gè)文件系統(tǒng)并實(shí)現(xiàn)基本的文件操作(為了簡(jiǎn)便文件系統(tǒng),不考慮文件共享,文件系統(tǒng)安全以及管道文件與設(shè)備文件等特殊內(nèi)容)。要求:1、 對(duì)程序的每一部分要有詳細(xì)的設(shè)計(jì)分析說(shuō)明 2、 程序執(zhí)行的每個(gè)步驟要有具體的提示內(nèi)容或輸出3、 源代碼格式規(guī)范,注釋不少于三分之一4、 設(shè)

8、計(jì)合適的測(cè)試用例,對(duì)得到的運(yùn)行結(jié)果要有分析,5、 設(shè)計(jì)中遇到的問(wèn)題,設(shè)計(jì)的心得體會(huì)6、 提交完整程序代碼、課程設(shè)計(jì)報(bào)告及相關(guān)文檔七. 設(shè)計(jì)原理7.1. 外存管理文件系統(tǒng)是一個(gè)含有大量的文件及其屬性,對(duì)文件進(jìn)行操作、管理的軟件,以及向用戶提供使用文件的接口的一個(gè)集合。在邏輯上它的層次結(jié)構(gòu)是這樣的:文件系統(tǒng)接口對(duì)對(duì)象的操作和管理的軟件集合邏輯文件系統(tǒng)基本I/O管理程序(文件組織模塊)基本文件系統(tǒng)(物理I/O層)I/O控制層(設(shè)備驅(qū)動(dòng)程序)對(duì)象及其屬性說(shuō)明 作為產(chǎn)品的操作系統(tǒng)有各自的文件系統(tǒng)。比如MS的WINDOWS系列使用的是FAT16、FAT32或NTFS的文件系統(tǒng)、LINUX使用的是EXT2、

9、EXT3文件系統(tǒng)等等。7.2. linux的EXT2文件系統(tǒng)linux使用一個(gè)叫虛擬文件系統(tǒng)的技術(shù)從而可以支持多達(dá)幾十種的不同文件系統(tǒng),而EXT2是linux自己的文件系統(tǒng)。它有幾個(gè)重要的數(shù)據(jù)結(jié)構(gòu),一個(gè)是超級(jí)塊,用來(lái)描述目錄和文件在磁盤上的物理位置、文件大小和結(jié)構(gòu)等信息。inode也是一個(gè)重要的數(shù)據(jù)結(jié)構(gòu)。文件系統(tǒng)中的每個(gè)目錄和文件均由一個(gè)inode描述。它包含:文件模式(類型和存取權(quán)限)、數(shù)據(jù)塊位置等信息。如果希望詳細(xì)學(xué)習(xí)EXT2文件系統(tǒng)可以參看linux內(nèi)核代碼include/linux/ext2_fs.h、include/linux/ext2_fs_sb.h等文件。一個(gè)文件系統(tǒng)除了重要的數(shù)

10、據(jù)結(jié)構(gòu)之外,還必須為用戶提供有效的接口操作。比如EXT2提供的OPEN/CLOSE接口操作。7.3. 用內(nèi)存來(lái)模擬外存真正的文件系統(tǒng)對(duì)外存進(jìn)行管理,涉及到許多硬件、設(shè)備管理方面的底層技術(shù),一方面這些技術(shù)不屬于操作系統(tǒng)核心內(nèi)容,一方面過(guò)多的內(nèi)容不免造成實(shí)驗(yàn)者顧此失彼,所以這里推薦一種使用內(nèi)存來(lái)模擬外存的方式,可以跳過(guò)這些硬件技術(shù)而直接把精力放在數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和操作算法設(shè)計(jì)上面。 假定pInode是一個(gè)指向inode結(jié)構(gòu)的指針,而且它已經(jīng)放入的需要放入的數(shù)值了,現(xiàn)在需要將其寫(xiě)入到特定位置??捎萌缦麓a:fd=fopen(“filesystem”,”w+b”); /fd是FILE指針類型,w便是寫(xiě)方式

11、,b表示二進(jìn)制fseek(fd, specific_area,SEEK_SET);/ fd是文件指針;specific_area為整形,/ 為需要入pInode的位置fwrite(pInode,1,sizeof(inode),fd); / 寫(xiě)入pInode信息7.4. 編碼#include #include #include #define DIR_LENGTH 1024 /*路徑最長(zhǎng)可達(dá)100字節(jié)*/ #define MAX_WRITE 1024*128 /*寫(xiě)入文字可達(dá)128k字節(jié)*/ #define MEM_D_SIZE 1024*1024 /*1M磁盤空間*/ #define DISK

12、SIZE 1024 /*磁盤塊的大小 1K*/ #define MSD 5 /*最大子目錄數(shù) 5 */ #define DISK_NUM MEM_D_SIZE/DISKSIZE /*磁盤塊數(shù)目 1024=1M/1K*/ #define FATSIZE DISK_NUM*sizeof(struct fatitem) /*FAT表大小 */ #define MOFN 5 /*最大文件打開(kāi)數(shù) 5 (即除根以外最大深度為5)*/ #define ROOT_DISK_NO FATSIZE/DISKSIZE+1 /*根目錄起始盤快號(hào) 9*/ #define ROOT_DISK_SIZE sizeof(st

13、ruct direct)/*根目錄大小 196*/ /*-FAT表項(xiàng)結(jié)構(gòu)-*/ struct fatitem /* size 8*/ int item; /*存放文件下一個(gè)磁盤的指針*/ char em_disk; /*磁盤塊是否空閑標(biāo)志位 0 空閑*/ ; /*-目錄項(xiàng)結(jié)構(gòu)-*/ struct direct /*-文件控制快信息-*/ struct FCB char name9; /*文件/目錄名 8位*/ char property; /*屬性 1位目錄 0位普通文件*/ int size; /*文件/目錄字節(jié)數(shù)、盤塊數(shù))*/ int firstdisk; /*文件/目錄 起始盤塊號(hào)*/

14、int next; /*子目錄起始盤塊號(hào)*/ int sign; /*1是根目錄 0不是根目錄*/ directitemMSD+2; ; /*-文件打開(kāi)表項(xiàng)結(jié)構(gòu)-*/ struct opentable struct openttableitem char name9; /*文件名*/ int firstdisk; /*起始盤塊號(hào)*/ int size; /*文件的大小*/ openitemMOFN; int cur_size; /*當(dāng)前打文件的數(shù)目*/ ; /*-*/ struct fatitem *fat; /*FAT表*/ struct direct *root; /*根目錄*/ stru

15、ct direct *cur_dir; /*當(dāng)前目錄*/ struct opentable u_opentable; /*文件打開(kāi)表*/ int fd=-1; /*文件打開(kāi)表的序號(hào)*/ char *bufferdir; /*記錄當(dāng)前路徑的名稱*/ char *fdisk; /*虛擬磁盤起始地址*/ int create(char *name); int open(char *name); int close(char *name); int write(int fd,char *buf,int len); int read(int fd,char *buf); int del(char *na

16、me); int mkdir(char *name); int rmdir(char *name); void dir(); int cd(char *name); /*-創(chuàng)建文件-*/ int create(char *name) int i,j; if(strlen(name)8) /*文件名大于 8位*/ return(-1); for(j=2;,name) break; if(jMSD+2) /*文件已經(jīng)存在*/ return(-4); for(i=2;idirectitemi.firstdisk=-1) break; if(i=MSD+2) /*無(wú)空

17、目錄項(xiàng)*/ return(-2); if(u_opentable.cur_size=MOFN) /*打開(kāi)文件太多*/ return(-3); for(j=ROOT_DISK_NO+1;j=DISK_NUM) return(-5); fatj.em_disk = 1; /*將空閑塊置為已經(jīng)分配*/ /*-填寫(xiě)目錄項(xiàng)-*/ strcpy(cur_,name); cur_dir-directitemi.firstdisk = j; cur_dir-directitemi.size = 0; cur_dir-directitemi.next = j; cur_d

18、perty = 0; /*-*/ fd = open(name); return 0; /*-打開(kāi)文件-*/ int open(char *name) int i, j; for(i=2;,name) break; if(i=MSD+2) return(-1); /*-是文件還是目錄-*/ if(cur_perty=1) return(-4); /*-文件是否打開(kāi)-*/ for(j=0;jMOFN;j+) if(!strcmp(u_,nam

19、e) break; if(j=MOFN) /*文件打開(kāi)太多*/ return(-3); /*-查找一個(gè)空閑用戶打開(kāi)表項(xiàng)-*/ for(j=0;jdirectitemi.firstdisk; strcpy(u_,name); u_opentable.openitemj.size = cur_dir-directitemi.size; u_opentable.cur_size+; /*-返回用戶打開(kāi)表表項(xiàng)的序號(hào)-*/ return(j); /*-關(guān)閉文件-*/ int close(char *name) int i; for(i=0;i=MOFN)

20、return(-1); /*-清空該文件的用戶打開(kāi)表項(xiàng)的內(nèi)容-*/ strcpy(u_,); u_opentable.openitemi.firstdisk = -1; u_opentable.openitemi.size = 0; u_opentable.cur_size-; return 0; /*-寫(xiě)文件-*/ int write(int fd, char *buf, int len) char *first; int item, i, j, k; int ilen1, ilen2, modlen, temp; /*-用 $ 字符作為空格

21、# 字符作為換行符-*/ char Space = 32; char Endter= n; for(i=0;ilen;i+) if(bufi = $) bufi = Space; else if(bufi = #) bufi = Endter; /*-讀取用戶打開(kāi)表對(duì)應(yīng)表項(xiàng)第一個(gè)盤塊號(hào)-*/ item = u_opentable.openitemfd.firstdisk; /*-找到當(dāng)前目錄所對(duì)應(yīng)表項(xiàng)的序號(hào)-*/ for(i=2;idirectitemi.firstdisk=item) break; temp = i; /*-存放當(dāng)前目錄項(xiàng)的下標(biāo)-*/ /*-找到的item 是該文件的最后一塊

22、磁盤塊-*/ while(fatitem.item!=-1) item =fatitem.item; /*-查找該文件的下一盤塊-*/ /*-計(jì)算出該文件的最末地址-*/ first = fdisk+item*DISKSIZE+u_opentable.openitemfd.size%DISKSIZE; /*-如果最后磁盤塊剩余的大小大于要寫(xiě)入的文件的大小-*/ if(DISKSIZE-u_opentable.openitemfd.size%DISKSIZElen) strcpy(first,buf); u_opentable.openitemfd.size = u_opentable.open

23、itemfd.size+len; cur_dir-directitemtemp.size = cur_dir-directitemtemp.size+len; else for(i=0;i0) ilen2 = ilen2+1; /*-還需要多少塊磁盤塊-*/ for(j=0;jilen2;j+) for(i=ROOT_DISK_NO+1;i=DISK_NUM) /*-如果磁盤塊已經(jīng)分配完了-*/ return(-1); first = fdisk+i*DISKSIZE; /*-找到的那塊空閑磁盤塊的起始地址-*/ if(j=ilen2-1) /*-如果是最后要分配的一塊-*/ for(k=0;

24、klen-(DISKSIZE-u_opentable.openitemfd.size%DISKSIZE)-j*DISKSIZE;k+) firstk = bufk; else/*-如果不是要最后分配的一塊-*/ for(k=0;kdirectitemtemp.size = cur_dir-directitemtemp.size+len; return 0; /*-讀文件-*/ int read(int fd, char *buf) int len = u_opentable.openitemfd.size; char *first; int i, j, item; int ilen1, mod

25、len; item = u_opentable.openitemfd.firstdisk; ilen1 = len/DISKSIZE; modlen = len%DISKSIZE; if(modlen!=0) ilen1 = ilen1+1; /*-計(jì)算文件所占磁盤的塊數(shù)-*/ first = fdisk+item*DISKSIZE; /*-計(jì)算文件的起始位置-*/ for(i=0;iilen1;i+) if(i=ilen1-1) /*-如果在最后一個(gè)磁盤塊-*/ for(j=0;jlen-i*DISKSIZE;j+) bufi*DISKSIZE+j = firstj; else /*-不在最

26、后一塊磁盤塊-*/ for(j=0;jlen-i*DISKSIZE;j+) bufi*DISKSIZE+j = firstj; item = fatitem.item; /*-查找下一盤塊-*/ first = fdisk+item*DISKSIZE; return 0; /*-刪除文件-*/ int del(char *name) int i,cur_item,item,temp; for(i=2;,name) break; cur_item = i; /*-用來(lái)保存目錄項(xiàng)的序號(hào),供釋放目錄中-*/ if(i=MSD+2) /*-如果不在當(dāng)前目錄中-*/ r

27、eturn(-1); if(cur_dir-directitemcur_perty!=0) /*-如果刪除的(不)是目錄-*/ return(-3); for(i=0;idirectitemcur_item.firstdisk; while(item!=-1) /*-釋放空間,將FAT表對(duì)應(yīng)項(xiàng)進(jìn)行修改-*/ temp = fatitem.item; fatitem.item = -1; fatitem.em_disk = 0; item = temp; /*-釋放目錄項(xiàng)-*/ cur_dir-directitemcur_item.sign = 0; cur_dir-direct

28、itemcur_item.firstdisk = -1; strcpy(u_opentable.openitemcur_,); cur_dir-directitemcur_item.next = -1; cur_dir-directitemcur_perty = 0; cur_dir-directitemcur_item.size = 0; return 0; /*-創(chuàng)建子目錄-*/ int mkdir(char *name) int i,j; struct direct *cur_mkdir; if(!strcmp(name,.) return(-4); i

29、f(!strcmp(name,.) return(-4); if(strlen(name)8) /*-如果目錄名長(zhǎng)度大于 8位-*/ return(-1); for(i=2;idirectitemi.firstdisk=-1) break; if(i=MSD+2) /*-目錄/文件 已滿-*/ return(-2); for(j=2;,name) break; if(jMSD+2) /*-如果有重名-*/ return(-3); for(j=ROOT_DISK_NO+1;j=DISK_NUM) return(-5); fatj.em_disk=1; /*-將該

30、空閑塊設(shè)置為已分配-*/ /*-填寫(xiě)目錄項(xiàng)-*/ strcpy(cur_,name); cur_dir-directitemi.firstdisk=j; cur_dir-directitemi.size=ROOT_DISK_SIZE; cur_dir-directitemi.next=j; cur_perty=1; /*-所創(chuàng)目錄在虛擬磁盤上的地址(內(nèi)存物理地址)-*/ cur_mkdir=(struct direct *)(fdisk+cur_dir-directitemi.firstdisk*DISKSIZE);

31、 /*-初始化目錄-*/ /*-指向當(dāng)前目錄的目錄項(xiàng)-*/ cur_mkdir-directitem0.sign=0; cur_mkdir-directitem0.firstdisk=cur_dir-directitemi.firstdisk; strcpy(cur_,.); cur_mkdir-directitem0.next=cur_mkdir-directitem0.firstdisk; cur_perty=1; cur_mkdir-directitem0.size=ROOT_DISK_SIZE; /*

32、-指向上一級(jí)目錄的目錄項(xiàng)-*/ cur_mkdir-directitem1.sign=cur_dir-directitem0.sign; cur_mkdir-directitem1.firstdisk=cur_dir-directitem0.firstdisk; strcpy(cur_,.); cur_mkdir-directitem1.next=cur_mkdir-directitem1.firstdisk; cur_perty=1; cur_mkdir-directitem1.size=ROOT_DISK

33、_SIZE; for(i=2;idirectitemi.sign=0; cur_mkdir-directitemi.firstdisk=-1; strcpy(cur_,); cur_mkdir-directitemi.next=-1; cur_perty=0; cur_mkdir-directitemi.size=0; return 0; /*-顯示當(dāng)前目錄的子目錄-*/ void dir() int i; for(i=2;idirectitemi.firstdisk!=-1) /*-如果存在子目錄-*/ printf(%st,cur_); if(cur_perty=0) /*-文件-*/ printf(%dttn,cur_dir-directitemi.size); else printf(ttn); 八. 測(cè)試界面a.主界面見(jiàn)圖2圖2b.創(chuàng)建文件見(jiàn)圖3圖3c.關(guān)閉、打開(kāi)文件見(jiàn)圖4圖44.創(chuàng)建與列出子目錄見(jiàn)圖5圖55.寫(xiě)文件、讀文件見(jiàn)圖6圖66.關(guān)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論