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

正文內(nèi)容

操作系統(tǒng)課程設(shè)計(jì)--模擬文件管理系統(tǒng)-文庫(kù)吧資料

2024-11-24 15:58本頁(yè)面
  

【正文】 相同的文件,(文件名,文件是否有 效,文件的層次,文件的類型) if (strcmp([i].FileName,filename)==0 amp。 for(int i=1。 //blank為找的空白文件塊的地址 FSElement *fs = (FSElement *)blank。 } //================================================================================================================== // 函數(shù)介紹:創(chuàng)建一個(gè)文件元素 // 輸入?yún)?shù): acc 文件元素可操作權(quán)限, filename 文件元素名稱, type 文件元素類型,filecontent 文件內(nèi)容 , parent 指向其父節(jié)點(diǎn) // 返 回 值:返回一個(gè)文件元素的指針 pFSElement CreateFileElement(FileAccess acc, char *filename, FileType type, char *filecontent, FSElement *parent) { unsigned blankFileBlockId = FindBlankFileBlockId()。 break。 break。 break。 break。 break。 break。 break。 break。 int xor。 char *c = amp。 } //================================================================================================== // 函數(shù)介紹:更新位示圖 // 輸入?yún)?shù): fileblockid 文件塊 ID 更改對(duì)應(yīng)的位示圖 void UpdateBitMap(unsigned fileblockid) { //計(jì)復(fù)所在位示圖的位置 int dirInBitmap = ((int)(fileblockid / 8))。 GetCurrent_Time([].creatTime)。 } [].Index = 。, NAME_LEN)。 if (parentname == NULL) { memset([].ParentName, 39。 strcpy([].FileName, filename)。 //將兩者拼接在一起,并用空格隔開 } //================================================================================================================= // 函數(shù)介紹:更新文件索引 // 輸入?yún)?shù): fileblockid 文件塊 ID void AddFileIndex(unsigned fileblockid, unsigned filelevel, char *filename, char *parentname,FileType temp) { [].FileBlockId = fileblockid。 strcat(currtime, )。 //獲得日期 _strtime(tbuffer)。 char tbuffer [9]。 //沒(méi)有找到,返回空。 //如果找到文件塊,返回文件塊的地址, } else { fblock = fblocknext。 } //================================================================================================ // 函數(shù)介紹:尋找第一個(gè) 文件塊地址 (根據(jù)文件塊 ID,找文件塊) // 輸入?yún)?shù): fileblockid 文件塊 ID // 返 回 值:返回文件塊的地址 char * FindBlankFileBlock(unsigned fileblockid) { FileBlock *fblock = 。 if (c == 0xFE) { return i * 8 + 7。 if (c == 0xFD) { return i * 8 + 6。 if (c == 0xFB) { return i * 8 + 5。 if (c == 0xF7) { return i * 8 + 4。 if (c == 0xEF) { return i * 8 + 3。 if (c == 0xDF) { return i * 8 + 2。 if (c == 0xBF) { return i * 8 + 1。 if (c == 0x7F) { return i * 8。 i / 8。 } //========================================================================================== // 函數(shù)介紹:尋找第一個(gè) 空白 的文件塊 ID // 返 回 值:返回第一個(gè)空白塊的 ID unsigned FindBlankFileBlockId(void) { unsigned char c。 \n\n。 cout版權(quán)所有 (c) 2020 計(jì)算機(jī) 4班。//用戶列表,在登錄的時(shí)候用到,以鏈表形式存儲(chǔ) bool InitFileSys()。 //當(dāng)前系統(tǒng)狀態(tài) FSElement *base。 SuperBlock FS。 //當(dāng)前層的父節(jié)點(diǎn) char *CurrentPath。 //當(dāng)前用戶 unsigned FileLevel。 //如果是一個(gè)文件表示文件當(dāng)前的狀態(tài) }。 //最后一次修改時(shí)間 char *FileData。 //文件創(chuàng)建者 char CreateTime[18]。 //文件元素類型 FileAccess Access。 //文件元素所在物理塊編號(hào) unsigned FileElemLen。 //文件元素所在層次,層+文件元素名為一個(gè)文件元素的邏輯位置 char FileName[NAME_LEN]。 struct FSElement { pFSElement parent。 //文件系統(tǒng)中的元素結(jié)構(gòu),包括文件和文件夾 (邏輯文件的定義,樹形結(jié)構(gòu)) struct FSElement。 pUser pUserList。 struct LoginStruct{ int User_Login_tims。 //用戶類型, 1表示管理員, 0表示用戶 pUser NextUser。 //用戶名稱 char *password。 typedef struct User *pUser。 //文件系統(tǒng)中的文件索引 }。 //文件系統(tǒng)中文件塊的數(shù)量 pFileBlock head。 //文件系統(tǒng)的容量 BitMap bm。 //文件系統(tǒng)結(jié)構(gòu) (超級(jí)塊的結(jié)構(gòu) ,全局變量) struct SuperBlock { char *FSStart。 //文件位示圖長(zhǎng)度 char *BMStart。 //下一個(gè)文件塊的地址 }。 //文件塊的容量 char *FileBlockAddr。 struct FileBlock { unsigned FileBlockId。 //文件塊的結(jié)構(gòu) (存儲(chǔ)數(shù)據(jù)塊結(jié)構(gòu)) struct FileBlock。 //文件索引的最大長(zhǎng)度 unsigned FICount。 //文件索引結(jié)構(gòu)或目錄表項(xiàng) (文件目錄結(jié)構(gòu)) struct FileIndex { FileIndexElement *FIStart。 //是否有效, 0無(wú)效, 1有效 FileType Type。//文件創(chuàng)建時(shí)間 char *filecontent。 //文件元素所在物理塊編號(hào) unsigned FileLevel。 //文件元素名 char ParentName[NAME_LEN]。 //一個(gè)文件索引結(jié)構(gòu) (文件節(jié)點(diǎn)) struct FileIndexElement { unsigned Index。 //文件元素類型 typedef enum { file, //文件 dir //文件夾 } FileType。//最大文本字符數(shù)目 const char *PRO_SET_COMM[] = {creat, format, read, write, logout, del, cdir, cd, dir, exit,help}。//最大用戶密碼長(zhǎng)度 const unsigned MAX_USER_NUMBER=10。 //預(yù)設(shè)命令數(shù) const unsigned USER_NAME_SIZE=15。 //用戶登錄嘗試次數(shù) const unsigned COMMAND_LEN = 200。 //最長(zhǎng)文件名的長(zhǎng)度 const unsigned PASSWORD_LEN = 15。 //一個(gè)文件塊的大小 const unsigned BLOCK_COUNT = 512。 //模擬文件系統(tǒng)的容量設(shè)為 1M const unsigned BITMAP_LEN = 64。 7. 2 源代碼 (代碼文字已縮小 ) includeiostream include include string include fstream include sstream include include include include iomanip include include include include include define BOOL int using namespace std。此時(shí)深感自己編程能力的不足,經(jīng) 過(guò)多次修改,終于設(shè)計(jì)好了該設(shè)計(jì)。后來(lái)認(rèn)真閱讀課本有關(guān)的知識(shí),知道怎樣設(shè)計(jì)結(jié)構(gòu)體才方便文件操作。 5. 4 刪除文件 創(chuàng)建文件夾并刪除,創(chuàng)建文件夾的命令為 “ CDIR+文件夾名稱 ” ,下圖以 123為例;刪除命令為 DEL+文件夾名稱 /文件名稱,下圖還以 AAA 文件夾為例,如下圖所示: 刪除后查看,可以驗(yàn)證文件已經(jīng) 刪除。 5. 3 查看文件 根據(jù)之前創(chuàng)建的文件,可以查看 當(dāng)前文件夾中 已經(jīng)創(chuàng)建文件的信息。提示用戶是否刪除,確認(rèn)則刪除文件,修改當(dāng)前文件夾目錄和硬盤空間結(jié)構(gòu),修改超級(jí)塊,寫入模擬硬盤。將其全部顯示出來(lái)。 ( 9) cd – 進(jìn)入子目錄 或上級(jí)目錄 查找當(dāng)前目錄是否有該子目錄,沒(méi)有則退 出,調(diào)用 access()判斷當(dāng)前用戶是否有權(quán)限,無(wú)則退出,有則讀取該子目錄的目錄,將當(dāng)前目錄指向該目錄。 ( 8) access(文件名) 權(quán)限判斷 先判斷當(dāng)前目錄是否有該文件,在當(dāng)前目錄的硬盤空間找到該文件,判斷當(dāng)前登錄用戶是哪個(gè)組,判斷是否該用戶創(chuàng)建,判斷該文件的可見(jiàn)級(jí)別。 ( 5) read edit – 讀取和追加文本文件 ( 6) Read查找當(dāng)前目錄下是否該文件,沒(méi)有則退出,否則調(diào)用 access()權(quán)限判斷,有權(quán)限則判斷是不是文件,不是則退出,是文件則讀取文件并顯示。將文件夾內(nèi)容寫入硬盤空間。修改當(dāng)前目錄的結(jié)構(gòu),修改超級(jí)塊。申請(qǐng)硬盤空間,申請(qǐng)失敗則結(jié)束。 ( 2) format 格式化 初始化超級(jí)塊,初始化主目錄,初始化管理員 admin 目錄,初始化用戶目錄,初始化 用戶 passwd 文件。 文件系統(tǒng)結(jié)構(gòu) typedef struct User 用戶信息 typedef struct fse FSElement 文件系統(tǒng)中的元素結(jié)構(gòu),包括文件和 文件夾 typedef struct CurrentStatus 系統(tǒng)當(dāng)前狀態(tài) 是 否 輸出給定 i 節(jié)點(diǎn)對(duì)應(yīng)的第 1 塊內(nèi)容 文件是否大于 1 塊 輸出給定 i 節(jié)點(diǎn)對(duì)應(yīng)的 第 2 塊內(nèi)容
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1