freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)課程設(shè)計--模擬文件管理系統(tǒng)-文庫吧在線文庫

2024-12-30 15:58上一頁面

下一頁面
  

【正文】 path) 列出當前目錄的文件和文件夾 void Mkdir(char *filename) 創(chuàng)建一個文件夾 void Cd(char *path) 進入一個文件夾 void Delete(char *path) 刪除當前目錄的文件 void FindCommKey(char *mand, char *key, char *path) 命令分解 void Shell() 命令解釋模塊 void ClearFileSys( 退出時清理分配的內(nèi)存空間 4. 3. 3 系統(tǒng)流程圖 ( 1) Login 用戶登錄 用戶輸入用戶名和密碼,在 passwd 文件中查找是否有此用戶,核對密碼。 b、 編寫一管理程序 simdisk 對此空間 進行管理,以模擬 Linux 文件系統(tǒng),要求: ( 1) 盤塊大小 1k ( 2) 空閑盤塊的管理: Linux 位圖法 ( 3) 結(jié)構(gòu):超級塊 , i 結(jié)點區(qū) , 根目錄區(qū) c、 該文件管理程序的功能要求如下: Format: 對文件存儲器進行格式化 mkdir:用于創(chuàng)建子目錄 dir:用于顯示目錄 cd: 更改當前目錄 create:創(chuàng)建文件 write:寫文件 read:讀文件 del:刪除文件 access: 權(quán)限 d、 程序的總體流程為: (1)初始化文件目錄; (2)輸出提示符,等待接受命令,分析鍵入的命令; (3)對合法的命令,執(zhí)行相應(yīng) 的處理程序,否則輸出錯誤信息,繼續(xù)等待新命令,直到鍵入 EXIT 退出為止。 C、文件目錄 文件控制塊的有序集合稱為文件目錄。程序清單要求格式規(guī)范,注意加注釋(包含關(guān)鍵字、方法、變量等),在每個模塊前加注釋。在退出這個文件系統(tǒng)時應(yīng)將該文件系統(tǒng)保存到磁盤上,以便下次可以再將它恢復到內(nèi)存的虛擬磁盤空間中。 (3)程序采用二級文件目錄(即設(shè)置主目錄 MFD)和用戶文件目錄( UFD)。文件系統(tǒng)的主要功能:完成文件存儲空間管理,實現(xiàn)文件名到物理地址的映射,實現(xiàn)文件和目錄的操作管理,提供文件共享能力和安全措施等功能。 E、文件操作 文件的操作就是創(chuàng)建 /刪除文件、打開 /關(guān)閉文件、讀 /寫文件等 F、磁盤空間管理 文件系統(tǒng)的一個重要任務(wù)是對磁盤空間進行管理。139。 ( 3) create 創(chuàng)建文本文件 查找當前目錄下是否有同名文件,是則退出,否則 讓用戶輸入文本文件內(nèi)容,以‘ ’結(jié)束。 ( 7) Edit調(diào)用讀取文件模塊,讀取成功則用戶輸入追加的內(nèi)容,如果追加的內(nèi)容大于一個硬盤分配空間則申請分配空間,失敗則退出,申請成功則保存文件。 ( 12) Dir 列文件目錄(列出文件名、物理地址、保護碼和文件長度) 第五部分:調(diào)試分析 5. 1 用戶登錄 初始登陸界面,根據(jù)注冊用戶的信息,每次登陸有三次登陸機會,如果失敗即結(jié)束并退出,用戶名和驗證碼與注冊的信息一致則進入系統(tǒng), 下圖顯示的是登陸時 失敗的畫面 : 登陸成功后 畫面顯示 : 5. 2 創(chuàng)建文件 創(chuàng)建文件并輸入文件內(nèi)容,我們的創(chuàng)建文件模式 為 “ CREAT +文件名稱 ” ,下圖的名稱為 123,之后系統(tǒng)顯示輸入文件內(nèi)容,同時會提醒內(nèi)容以 “ ” 結(jié)尾,此便于系統(tǒng)識別,具體畫面如下所示: 下面是創(chuàng)建文件夾,文件夾不需要輸入文件信息。 通過該課程設(shè)計,使我們更了解了課本知識,鞏固了課本知識,同時也使我們的編程能力有了一定的提高,最重要的是我們深切體會到團隊的重要,怎么配合和分工才能更快更好的完成任務(wù)。 //用戶密碼的最大長度 const unsigned LOGIN_COUNT = 3。 //文件元素可供操作性權(quán)限 typedef enum { pub, //任何人可做任何操作(公共文件,所有人都 可查看) protect, //非創(chuàng)建者或 ADMIN,只可以察看 (保護,只有自己和管理員可查看) pri //非創(chuàng)建者或 ADMIN,不可以做任何操作 (系統(tǒng)文件) } FileAccess。 //文件元素所在層次,層+文件元素名為一個文件元素的邏輯位置 char creatTime[18]。 //文件索引數(shù)量 }。 //文件系統(tǒng)的位示圖結(jié)構(gòu) (用于顯示分配的存儲器分配情況) struct BitMap { unsigned BITMAP_LEN。 //文件系統(tǒng)中文件塊首地址 FileIndex FI。 }。 //指向自己的父親節(jié)點 unsigned FileLevel。 //創(chuàng)建時間,日期格式: MM/DD/YY HH:MI:SS char LastModTime[18]。 //當前路徑 }。保留所有權(quán)利。 //一個字節(jié)左邊第一位為 0,表示該區(qū)域未使用 } c = [i] | 0xBF。 } c = [i] | 0xFB。 while (fblocknext != NULL) { if (fblockFileBlockId == fileblockid) { return fblockFileBlockAddr。 //獲得時間 strcpy(currtime, dbuffer)。\039。 int dirInChar = fileblockid % 8。 case 2: xor=0x20。 case 6: xor=0x02。 int flag = 0。amp。 return NULL。 //最后修改時間 fsType = type。 if (filecontent) { strcpy(fsFileData, filecontent)。amp。 //文件塊鏈表頭指針 FileBlock *pnew。 memset(poldFileBlockAddr, 39。 } return head。 //位示圖的初始地址就是該文件系統(tǒng)的空間初始地址,位示圖 空間大小是 64位 //設(shè)置位示圖為未使用 memset(, 39。 //包括所有文件索引的大小,以及兩個記錄信息的大小 索引最大長度,文件索引數(shù)量 = 0。 } //以上為初始化超級快,下面是初始化系統(tǒng)當前狀態(tài) //初始化系統(tǒng)當前狀態(tài) = (char *)calloc(USER_NAME_SIZE,sizeof(char))。 = (char *)calloc(COMMAND_LEN, sizeof(char))。 ()。 pUserName=(char *)calloc(USER_NAME_SIZE,sizeof(char))。 ++。 coutCDIR\t創(chuàng)建文件夾 \n。 int c。 } ++。 \n)。 buf=(char *)malloc(sizeof(char)*MAX_FILE_SIZE)。 if(buf[i] == 39。 } } //coutbuf39。 cout創(chuàng)建時間 \t\t文件名 /目錄名 \t文件類型 \t所有者 \t文件大小 \n。..\t\tDIRendl。amp。 } else { cout\t\tFILE\t\t39。 } printf(%s/root%s, , )。amp。 = parent。 strcpy(temppath, )。 i 。 \n)。amp。 strncpy(, temppath, i+1)。/39。amp。i。 } } } printf(%s/root%s, , )。 if([i].Type==dir) { //strcat(display,+)。 i++) { //尋找當前文件夾下的所有文件,索引文件的父節(jié)點為當前節(jié)點,文件有效,層數(shù)相等。\t39。 } //===================================================================================================== // 函數(shù)介紹:列出當前目錄的所有文件和文件夾 // 輸入?yún)?shù): path 路徑 void Dir(char *path) { //char display[COMMAND_LEN]。 } else k=0。 //將索引塊的信息置為空 printf(輸入文件內(nèi)容,以 \\結(jié)束 :\n)。 void CreateFile(char *filename) { //coutfilename。 //printf(\n%s/root%s, username, )。 if (strcmp(username, ) == 0) // 一個管理員 { strcpy(, username)。 coutEXIT\t退出系統(tǒng) \n。 coutFORMAT\t格式化文件系統(tǒng) \n。 fspisAdmin。 //延時 3秒鐘,給用戶展示的時間 return false。 return false。 =0。 //將索引塊的信息置為空 //初始化文件塊 = CreateFileBlockList(( + FILE_SYS_SIZE BLOCK_SIZE * BLOCK_COUNT),BLOCK_SIZE, )。\039。 return false。 if (i != len 1) { pnew = (FileBlock *)malloc(sizeof(FileBlock))。 i len。 } //更新 BITMAP 位示圖 UpdateBitMap(blankFileBlockId)。amp。 } else { fsFileElemLen=(unsigned)strlen(filecontent)。 //文件創(chuàng)建時間 fsFileBlockId = blankFileBlockId。 } } //if(flag) return NULL。amp。 } *c = *c^xor。 case 4: xor=0x08。 switch (dirInChar) { case 0: xor=0x80。 [].effect = 1。 [].FileLevel = filelevel。 } //================================================================================================== // 函數(shù)介紹:得到當前時間的字符串 // 輸入?yún)?shù):時間字符串的指針 void GetCurrent_Time(char *currtime) { char dbuffer [9]。 } c = [i] | 0xFE。 } c = [i] | 0xEF。 //通過位示圖 查找 可以簡化 for (unsigned i = 0。 //文件元素的根 LoginStruct LoginS。 //系統(tǒng)當前狀態(tài) struct CurrentStatus { User CurrentUser。 //文件元素的長度 FileType Type。 }。 struct User { char *UserName。 //文件系統(tǒng)的起始地址 unsigned SuperBlockSize。 //文件塊編號 unsigned BLOCK_SIZE。 //識別文件還是目錄 }。 //文件元素索引編號 char FileName[NAME_LEN]。//最大用戶名長度 const unsigned USER_PA
點擊復制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1