版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課 程 設(shè) 計(jì)</b></p><p> 課程名稱____計(jì)算機(jī)操作系統(tǒng)_</p><p> 題目名稱_多用戶多級(jí)目錄文件系統(tǒng)實(shí)現(xiàn)_</p><p> 學(xué)生學(xué)院___計(jì)算機(jī)學(xué)院______</p><p> 2015 年 1月 13日課程設(shè)計(jì)任務(wù)書</p><p&
2、gt;<b> 目錄</b></p><p> 一、課程設(shè)計(jì)的目的1</p><p> 二、實(shí)驗(yàn)內(nèi)容與要求4</p><p> 三、設(shè)計(jì)步驟分析4</p><p><b> ?。?)實(shí)現(xiàn)原理4</b></p><p> (2)實(shí)現(xiàn)原理圖4</p>
3、;<p> ?。?)程序執(zhí)行過(guò)程5</p><p> (4)實(shí)現(xiàn)用到的數(shù)據(jù)結(jié)構(gòu)5</p><p><b> 四.部分源代碼8</b></p><p> ?。?)bool InitFileSys(); //尋找第一個(gè)空白的文件塊ID8</p><p> (2)char * FindBlank
4、FileBlock(unsigned fileblockid) //尋找第一個(gè)文件塊地址9</p><p> ?。?)void UpdateBitMap(unsigned fileblockid) //計(jì)復(fù)所在位示圖的位置9</p><p> (4)bool InitFileSys() //初始化模擬文件系統(tǒng)10</p><p> ?。?)vo
5、id FindCommKey(char *command, char *key, char *path) //命令分解11</p><p> ?。?)void Shell() //命令解釋模塊12</p><p> 五.執(zhí)行結(jié)果和結(jié)果分析14</p><p> ?。?)初始化界面并登陸系統(tǒng)14</p><p> (2)創(chuàng)建
6、一個(gè)文件14</p><p> (3)刪除文件14</p><p> ?。?)打開(kāi)文件14</p><p> (5)關(guān)閉文件14</p><p><b> ?。?)寫文件14</b></p><p><b> (7)讀文件14</b></p>
7、<p> ?。?)創(chuàng)建目錄14</p><p> ?。?)查看目錄14</p><p> ?。?0)改變當(dāng)前目錄14</p><p> ?。?1)退出系統(tǒng)15</p><p><b> 六.心得體會(huì)15</b></p><p><b> ?。?)15</b&
8、gt;</p><p><b> ?。?)15</b></p><p><b> ?。?)15</b></p><p><b> (4)15</b></p><p><b> (5)15</b></p><p><
9、b> 一、課程設(shè)計(jì)的目的</b></p><p> 1、在內(nèi)存中開(kāi)辟一個(gè)虛擬磁盤空間作為文件存儲(chǔ)器,在其上實(shí)現(xiàn)一個(gè)多用戶多目錄的文件系統(tǒng)。</p><p> 2、文件物理結(jié)構(gòu)可采用顯式鏈接或其他方法。</p><p> 3、磁盤空閑空間的管理可選擇位示圖或其他方法。如果采用位示圖來(lái)管理文件存儲(chǔ)空間,并采用顯式鏈接分配方式,則可以將位示圖合并
10、到FAT中。</p><p> 文件目錄結(jié)構(gòu)采用多用戶多級(jí)目錄結(jié)構(gòu),每個(gè)目錄項(xiàng)包含文件名、物理</p><p> 地址、長(zhǎng)度等信息,還可以通過(guò)目錄項(xiàng)實(shí)現(xiàn)對(duì)文件的讀和寫的保護(hù)。</p><p> 設(shè)計(jì)一個(gè)較實(shí)用的用戶界面,方便用戶使用。要求提供以下相關(guān)文件操</p><p><b> 作:</b></p>
11、;<p> (1)具有l(wèi)ogin (用戶登錄);</p><p> ?。?)系統(tǒng)初始化(建文件卷、提供登錄模塊);</p><p> ?。?)文件的創(chuàng)建: create;</p><p> ?。?)文件的打開(kāi):open;</p><p> ?。?)文件的讀:read;</p><p> ?。?)文件的寫
12、:write;</p><p> ?。?)文件關(guān)閉:close;</p><p> ?。?)刪除文件:delete ;</p><p> ?。?)創(chuàng)建目錄(建立子目錄):mkdir;</p><p> ?。?0)改變當(dāng)前目錄:cd;</p><p> ?。?1)列出文件目錄:dir;</p><p&
13、gt; ?。?2)退出:logout。</p><p> 6、系統(tǒng)必須可實(shí)際演示,選用程序設(shè)計(jì)語(yǔ)言:C++、C等。</p><p><b> 二、實(shí)驗(yàn)內(nèi)容與要求</b></p><p> 1.設(shè)計(jì)多用戶文件系統(tǒng),采用多級(jí)文件目錄。</p><p> 2.至少要有十個(gè)以上的實(shí)用命令,應(yīng)設(shè)置文件保護(hù)措施。</p
14、><p> 3.設(shè)計(jì)一個(gè)較實(shí)用的用戶界面,方便用戶使用,界面要為用戶提供足夠的選擇信息,不需用戶打入冗長(zhǎng)的命令。</p><p><b> 三、設(shè)計(jì)步驟分析</b></p><p><b> (1)實(shí)現(xiàn)原理</b></p><p> 本程序是一個(gè)文件系統(tǒng)模擬程序,模擬文件管理的工作過(guò)程。<
15、/p><p> 本程序設(shè)計(jì)一個(gè)最多有10個(gè)用戶的文件系統(tǒng),實(shí)現(xiàn)文件系統(tǒng)的模擬管理過(guò)程,可以</p><p> 進(jìn)行創(chuàng)建用戶、創(chuàng)建文件、刪除文件、創(chuàng)建文件夾、刪除文件夾、讀文件、寫文件、執(zhí)行文件、打開(kāi)文件、關(guān)閉文件、顯示目錄等操作。</p><p><b> ?。?)實(shí)現(xiàn)原理圖</b></p><p><b>
16、?。?)程序執(zhí)行過(guò)程</b></p><p> (4)實(shí)現(xiàn)用到的數(shù)據(jù)結(jié)構(gòu)</p><p> typedef enum //文件元素可供操作性權(quán)限</p><p><b> { </b></p><p> pub, //任何人可做任何操作 </p>
17、<p> protect, //非創(chuàng)建者或管理員,只可以察看 </p><p> pri //非創(chuàng)建者或管理員,不可以做任何操作 </p><p> } FileAccess; </p><p> //文件元素類型 </p><p> typedef
18、 enum </p><p><b> { </b></p><p> file, //文件 </p><p> dir //文件夾 </p><p> } FileType; </p><p><b&g
19、t; //用戶類型 </b></p><p> typedef enum </p><p><b> { </b></p><p> administrator, //管理者,擁用所有權(quán)限 </p><p> guest //一
20、般用戶 </p><p> } UserType; </p><p><b> //文件狀態(tài) </b></p><p> typedef enum </p><p><b> { </b></p><p> closed, </p>
21、;<p> opened, </p><p> reading, </p><p> writing </p><p> } FileStatus; </p><p> //一個(gè)文件索引結(jié)構(gòu) </p><p> typedef struct </p>&
22、lt;p><b> { </b></p><p> unsigned Index; //文件元素索引編號(hào) </p><p> char FileName[NAME_LEN]; //文件元素名 </p><p> char ParentName[NAME_LE
23、N]; //父節(jié)點(diǎn)名 </p><p> unsigned FileBlockId; //文件元素所在物理塊編號(hào) </p><p> unsigned FileLevel; //文件元素所在層次,層+文件元素名為一個(gè)文件元素的邏輯位置 </p><p> unsigned
24、 effect; //是否有效,0-無(wú)效,1-有效 </p><p> } FileIndexElement; </p><p> //文件索引結(jié)構(gòu)或目錄表項(xiàng) </p><p> typedef struct </p><p><b> { </b><
25、;/p><p> FileIndexElement *FIStart; //文件系統(tǒng)中的文件索引起始位置 </p><p> unsigned FILen; //文件索引的最大長(zhǎng)度 </p><p> unsigned FICount; //文件索引數(shù)量 </p>
26、<p> } FileIndex; </p><p> //文件塊的結(jié)構(gòu) </p><p> typedef struct fb </p><p><b> { </b></p><p> unsigned FileBlockId; //文件塊編號(hào) </p&g
27、t;<p> unsigned BLOCK_SIZE; //文件塊的容量 </p><p> char *FileBlockAddr; //文件塊地址 </p><p> struct fb *next; //下一個(gè)文件塊的地址 </p><p> } FileBlock; &l
28、t;/p><p> //文件系統(tǒng)的位示圖結(jié)構(gòu) </p><p> typedef struct </p><p><b> { </b></p><p> unsigned BITMAP_LEN; //文件位示圖長(zhǎng)度 </p><p> char *BMSta
29、rt; //位示圖的起始指針 </p><p> } BitMap; </p><p> //文件系統(tǒng)結(jié)構(gòu) </p><p> typedef struct </p><p><b> { </b></p><p> char *FSSta
30、rt; //文件系統(tǒng)的起始地址 </p><p> unsigned SuperBlockSize; //文件系統(tǒng)的容量 </p><p> BitMap bm; //文件系統(tǒng)中的位示圖 </p><p> unsigned BLOCK_COUNT;
31、 //文件系統(tǒng)中文件塊的數(shù)量 </p><p> FileBlock *head; //文件系統(tǒng)中文件塊首地址 </p><p> FileIndex FI; //文件系統(tǒng)中的文件索引 </p><p> } SuperBlock; </p><p&
32、gt; typedef struct </p><p><b> { </b></p><p> char *UserName; //用戶名稱 </p><p> UserType ut; //用戶類型 </p><p>
33、} User; </p><p> //文件系統(tǒng)中的元素結(jié)構(gòu),包括文件和文件夾 </p><p> typedef struct fse </p><p><b> { </b></p><p> struct fse *parent; //指向自己的父親節(jié)點(diǎn)
34、</p><p> unsigned FileLevel; //文件元素所在層次,層+文件元素名為一個(gè)文件元素的邏輯位置 </p><p> char FileName[NAME_LEN]; //文件元素名 </p><p> unsigned FileBlockId;
35、//文件元素所在物理塊編號(hào) </p><p> unsigned FileElemLen; //文件元素的長(zhǎng)度 </p><p> FileType Type; //文件元素類型 </p><p> FileAccess Access; //文件
36、元素可供操作的權(quán)限 </p><p> User Creator; //文件創(chuàng)建者 </p><p> char CreateTime[18]; //創(chuàng)建時(shí)間,日期格式:MM/DD/YY HH:MI:SS </p><p> char LastModTime[18];
37、 //最后一次修改時(shí)間 </p><p> char *FileData; //一個(gè)文件的數(shù)據(jù)開(kāi)始地址,文件夾時(shí)該值為NULL </p><p> FileStatus fileStu; //如果是一個(gè)文件表示文件當(dāng)前的狀態(tài) </p><p> } FSEle
38、ment; </p><p> //系統(tǒng)當(dāng)前狀態(tài) </p><p> typedef struct </p><p><b> { </b></p><p> User CurrentUser; //當(dāng)前用戶 </p><p> unsig
39、ned FileLevel; //用戶所在文件系統(tǒng)層 </p><p> FSElement *CurrParent; //當(dāng)前層的父節(jié)點(diǎn) </p><p> char *CurrentPath; //當(dāng)前路徑 </p><p> } CurrentStatus;</p>
40、;<p><b> 四.部分源代碼</b></p><p> (1)bool InitFileSys(); //尋找第一個(gè)空白的文件塊ID </p><p> unsigned FindBlankFileBlockId() </p><p><b> { </b></p>&
41、lt;p> unsigned char c; </p><p> for (unsigned i = 0; i < FS.bm.BITMAP_LEN / 8; i++) </p><p><b> { </b></p><p> c = FS.bm.BMStart[i] | 0x7F; </p>
42、<p> if (c == 0x7F) </p><p><b> { </b></p><p> return i * 8; //一個(gè)字節(jié)左邊第一位為0,表示該區(qū)域未使用 </p><p><b> } </b></p><p> c = FS.b
43、m.BMStart[i] | 0xBF; </p><p> if (c == 0xBF) </p><p><b> { </b></p><p> return i * 8 + 1; </p><p><b> } </b></p>&l
44、t;p> c = FS.bm.BMStart[i] | 0xDF; </p><p> if (c == 0xDF) </p><p><b> { </b></p><p> return i * 8 + 2; </p><p><b> } </b&g
45、t;</p><p> c = FS.bm.BMStart[i] | 0xEF; </p><p> if (c == 0xEF) </p><p><b> { </b></p><p> return i * 8 + 3; </p><p><b&g
46、t; } </b></p><p> c = FS.bm.BMStart[i] | 0xF7; </p><p> if (c == 0xF7) </p><p><b> { </b></p><p> return i * 8 + 4; </p>
47、<p><b> } </b></p><p> c = FS.bm.BMStart[i] | 0xFB; </p><p> if (c == 0xFB) </p><p><b> { </b></p><p> return i * 8 + 5;
48、 </p><p><b> } </b></p><p> c = FS.bm.BMStart[i] | 0xFD; </p><p> if (c == 0xFD) </p><p><b> { </b></p><p> return
49、i * 8 + 6; </p><p><b> } </b></p><p> c = FS.bm.BMStart[i] | 0xFE; </p><p> if (c == 0xFE) </p><p><b> { </b></p>&l
50、t;p> return i * 8 + 7; </p><p><b> } </b></p><p><b> } </b></p><p> return BLOCK_COUNT + 1; </p><p><b> } </b&
51、gt;</p><p> ?。?)char * FindBlankFileBlock(unsigned fileblockid) //尋找第一個(gè)文件塊地址 </p><p><b> { </b></p><p> FileBlock *fblock = FS.head; </p><p> whil
52、e (fblock->next != NULL) </p><p><b> { </b></p><p> if (fblock->FileBlockId == fileblockid) </p><p><b> { </b></p><p> return
53、fblock->FileBlockAddr; </p><p><b> } </b></p><p><b> else </b></p><p><b> { </b></p><p> fblock = fblock->next;
54、</p><p><b> } </b></p><p><b> } </b></p><p> return NULL; </p><p><b> } </b></p><p> (3)void UpdateBitMap(
55、unsigned fileblockid) //計(jì)復(fù)所在位示圖的位置</p><p><b> { </b></p><p> int dirInBitmap = ((int)(fileblockid / 8)); </p><p> int dirInChar = fileblockid % 8; </p>
56、<p> char *c = &(FS.bm.BMStart[dirInBitmap]); </p><p> char xor; </p><p> switch (dirInChar) </p><p><b> { </b></p><p> case 0: &l
57、t;/p><p> xor = 0x80; </p><p><b> break; </b></p><p> case 1: </p><p> xor = 0x40; </p><p><b> break; </b></p>&
58、lt;p> case 2: </p><p> xor = 0x20; </p><p><b> break; </b></p><p> case 3: </p><p> xor = 0x10; </p><p><b> break; &
59、lt;/b></p><p> case 4: </p><p> xor = 0x08; </p><p><b> break; </b></p><p> case 5: </p><p> xor = 0x04; </p><p>
60、;<b> break; </b></p><p> case 6: </p><p> xor = 0x02; </p><p><b> break; </b></p><p> case 7: </p><p> xor = 0x01;
61、 </p><p><b> break; </b></p><p><b> } </b></p><p> *c = *c ^ xor; </p><p><b> } </b></p><p> ?。?)bool Init
62、FileSys() //初始化模擬文件系統(tǒng) </p><p><b> { </b></p><p> if ((FS.FSStart = (char *)malloc(FILE_SYS_SIZE)) == NULL) </p><p><b> { </b></p><p>
63、; return false; </p><p><b> } </b></p><p> FS.SuperBlockSize = FILE_SYS_SIZE; </p><p> FS.bm.BITMAP_LEN = BITMAP_LEN; </p><p> FS.bm.BMS
64、tart = FS.FSStart; </p><p> //設(shè)置位示圖為未使用 </p><p> memset(FS.bm.BMStart, '\0', FS.bm.BITMAP_LEN); </p><p> //初始化文件系統(tǒng)索引 </p><p> FS.FI.FIStart = (FileI
65、ndexElement *)(FS.FSStart + BITMAP_LEN); </p><p> //因?yàn)槭悄M系統(tǒng),暫定一個(gè)文件或文件夾最多占用一個(gè)文件塊,一個(gè)文件塊只放一個(gè)文件元素 </p><p> FS.FI.FILen = sizeof(FileIndexElement) * BLOCK_COUNT + sizeof(unsigned) * 2; &l
66、t;/p><p> FS.FI.FICount = 0; </p><p> memset(FS.FI.FIStart, '\0', FS.FI.FILen); </p><p> //初始化文件塊 </p><p> FS.BLOCK_COUNT = BLOCK_COUNT; </p>&l
67、t;p> FS.head = CreateFileBlockList((FS.FSStart + FILE_SYS_SIZE - BLOCK_SIZE * </p><p> BLOCK_COUNT), </p><p> BLOCK_SIZE, FS.BLOCK_COUNT);//區(qū)域的后BLOCK_SIZE * BLOCK_COUNT個(gè)單元用來(lái)存儲(chǔ)數(shù)據(jù) </
68、p><p> if (FS.head == NULL) </p><p><b> { </b></p><p> return false; </p><p><b> } </b></p><p> //初始化系統(tǒng)當(dāng)前狀態(tài) </p>
69、<p> CS.CurrentUser.UserName = (char *)calloc(10,sizeof(char)); </p><p> strcpy(CS.CurrentUser.UserName, "man"); </p><p> CS.CurrentUser.ut = administrator; </p>
70、<p> CS.CurrParent = NULL; </p><p> CS.FileLevel = 0; </p><p> CS.CurrentPath = (char *)calloc(1000, sizeof(char)); </p><p> //創(chuàng)建一個(gè)根目錄 </p><p> base =
71、 CreateFileElement(pub, "root", dir, NULL, NULL); </p><p> if (base == NULL) </p><p><b> { </b></p><p> return false; </p><p><b>
72、 } </b></p><p><b> else </b></p><p><b> { </b></p><p> return true; </p><p><b> } </b></p><p><
73、b> } </b></p><p> ?。?)void FindCommKey(char *command, char *key, char *path) //命令分解 </p><p><b> { </b></p><p> for (unsigned i = 0; i < strlen(comma
74、nd); i++) </p><p><b> { </b></p><p> if (command[i] == ' ') </p><p><b> { </b></p><p><b> i++; </b></p>
75、<p> if (i < strlen(command)) </p><p><b> { </b></p><p> strcpy(path, command + i); </p><p><b> } </b></p><p><b>
76、break; </b></p><p><b> } </b></p><p> if (i <= 9) </p><p><b> { </b></p><p> key[i] = command[i]; </p><p>&l
77、t;b> } </b></p><p><b> else </b></p><p><b> { </b></p><p> for (unsigned j = i; j < strlen(command); j++) </p><p><b&
78、gt; { </b></p><p> if (command[j] != ' ') </p><p><b> { </b></p><p> strcpy(path, command + j); </p><p><b> break; </b
79、></p><p><b> } </b></p><p><b> } </b></p><p><b> break; </b></p><p><b> } </b></p><p><b&
80、gt; } </b></p><p> strlwr(key); </p><p> strlwr(path); </p><p><b> } </b></p><p> (6)void Shell() //命令解釋模塊 </p><p><b&
81、gt; { </b></p><p> char command[COMMAND_LEN]; </p><p> gets(command); </p><p> char key[10]; </p><p> char path[COMMAND_LEN - 10]; </p><
82、p> while (true) </p><p><b> { </b></p><p> memset(key, '\0', 10); </p><p> memset(path, '\0', COMMAND_LEN - 10); </p><p> Fi
83、ndCommKey(command, key, path); </p><p> unsigned i; </p><p> for (i = 0; i < PRO_SET_COMM_COU; i++) </p><p><b> { </b></p><p> if (strcmp(ke
84、y, PRO_SET_COMM[i]) == 0) </p><p><b> { </b></p><p><b> break; </b></p><p><b> } </b></p><p><b> } </b><
85、;/p><p> switch (i) </p><p><b> { </b></p><p> case 0: </p><p> Create(path); </p><p><b> break; </b></p>&
86、lt;p> case 1: </p><p> Open(path); </p><p><b> break; </b></p><p> case 2: </p><p> Read(path); </p><p><b> break; &
87、lt;/b></p><p> case 3: </p><p> Write(path); </p><p><b> break; </b></p><p> case 4: </p><p> Close(path); </p><p&
88、gt;<b> break; </b></p><p> case 5: </p><p> Delete(path); </p><p><b> break; </b></p><p> case 6: </p><p> Mkdir(pa
89、th); </p><p><b> break; </b></p><p> case 7: </p><p> Cd(path); </p><p><b> break; </b></p><p> case 8: </p>
90、<p> Dir(path); </p><p><b> break; </b></p><p> case 9: </p><p> //Logout </p><p><b> break; </b></p><p> de
91、fault: </p><p> printf("\n命令錯(cuò)誤。\n"); </p><p> printf("%sC:%s", CS.CurrentUser.UserName, </p><p> CS.CurrentPath); </p><p><b> } &l
92、t;/b></p><p> if (i == 9) </p><p><b> { </b></p><p><b> break; </b></p><p><b> } </b></p><p> gets(comm
93、and); </p><p><b> } </b></p><p><b> } </b></p><p> 五.執(zhí)行結(jié)果和結(jié)果分析</p><p> (1)初始化界面并登陸系統(tǒng)(登陸密碼:123)</p><p><b> ?。?)創(chuàng)建一個(gè)文
94、件</b></p><p><b> ?。?)刪除文件</b></p><p><b> ?。?)打開(kāi)文件</b></p><p><b> ?。?)關(guān)閉文件</b></p><p><b> (6)寫文件</b></p>&l
95、t;p><b> ?。?)讀文件</b></p><p><b> ?。?)創(chuàng)建目錄</b></p><p><b> ?。?)查看目錄</b></p><p> (10)改變當(dāng)前目錄</p><p><b> ?。?1)退出系統(tǒng)</b></
96、p><p><b> 六.心得體會(huì)</b></p><p> (1)由于沒(méi)有做圖形化用戶界面,總的來(lái)說(shuō)難度不大。因?yàn)椴粫?huì)用vc++做圖形界面,本想簡(jiǎn)單的看一下《Virual C++圖形用戶開(kāi)發(fā)指南》這本書,做一個(gè)簡(jiǎn)單的界面,但到圖書館找到才發(fā)現(xiàn)這本書400頁(yè)厚,里面的東西看起來(lái)就好難,絕對(duì)不是一兩天能弄懂的,所以就沒(méi)有做圖形界面。而我只會(huì)用Java做簡(jiǎn)單的圖形界面,J
97、ava的界面和c++的源程序暫時(shí)還是不知道怎么連上。</p><p> ?。?)覺(jué)得這個(gè)課程設(shè)計(jì)和前面的實(shí)驗(yàn)4大同小異,有了實(shí)驗(yàn)4的基礎(chǔ),花了大概兩天時(shí)間便做完了課程設(shè)計(jì),完成了要求的基本功能。</p><p> ?。?)通過(guò)這次課程設(shè)計(jì),加深了對(duì)操作系統(tǒng)文件管理的理解。在程序設(shè)計(jì)方面,進(jìn)一步鍛煉了自己的編程能力,增強(qiáng)了實(shí)踐和動(dòng)手能力,使自己的編程能力和邏輯思考能力有了較大的進(jì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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設(shè)計(jì)---多用戶多級(jí)目錄文件系統(tǒng)的實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)---多用戶多級(jí)目錄文件系統(tǒng)的實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)---多用戶多級(jí)目錄文件系統(tǒng)的實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)---一個(gè)多用戶多級(jí)目錄結(jié)構(gòu)文件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 文件管理系統(tǒng)課程設(shè)計(jì)---多用戶多級(jí)目錄文件系統(tǒng)的實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--多級(jí)文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--多級(jí)文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--多級(jí)文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--多級(jí)文件系統(tǒng).doc
- 操作系統(tǒng)課程設(shè)計(jì)--樹(shù)形目錄文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)簡(jiǎn)單文件系統(tǒng)的實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)--簡(jiǎn)單文件系統(tǒng)的實(shí)現(xiàn)
- 操作系統(tǒng)文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)--模擬文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)---文件系統(tǒng)的模擬
- 操作系統(tǒng)課程設(shè)計(jì)---模擬文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)-模擬文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--虛擬文件系統(tǒng)的實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)二級(jí)文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)二級(jí)文件系統(tǒng)
評(píng)論
0/150
提交評(píng)論