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

正文內(nèi)容

word版可編輯-操作系統(tǒng)課程設(shè)計報告精心整理docxdocx-在線瀏覽

2024-08-25 12:13本頁面
  

【正文】 AT32文件系統(tǒng)格式FAT32是Windows系統(tǒng)硬盤分區(qū)格式的一種。由于現(xiàn)在的硬盤生產(chǎn)成本下降,其容量越來越大,運用FAT32的分區(qū)格式后,我們可以將一個大硬盤定義成一個分區(qū)而不必分為幾個分區(qū)使用,大大方便了對磁盤的管理。一個FAT文件系統(tǒng)包括四個不同的部分:保留扇區(qū)、FAT區(qū)域、根目錄區(qū)域、數(shù)據(jù)區(qū)域。第三章 總體設(shè)計嵌入式文件系統(tǒng)由于功能和作用與普通桌面操作系統(tǒng)的文件系統(tǒng)不同,導(dǎo)致了二者在體系結(jié)構(gòu)上具有很大的差異性。在嵌入式文件系統(tǒng)中,這種規(guī)則發(fā)生了很大的變化?;谝陨系目紤],我們采用了下圖所示的嵌入式文件系統(tǒng)體系結(jié)構(gòu),該結(jié)構(gòu)定義的文件系統(tǒng)從上到下有三個層次:第一層為API層、第二層為中間轉(zhuǎn)換層、下層為介質(zhì)驅(qū)動層。API層是文件系統(tǒng)和用戶應(yīng)用程序之間的接口,它有一個標(biāo)準C函數(shù)庫,其中包含有諸如打開文件(f_open)、寫文件(f_write)等函數(shù)。這是整個系統(tǒng)設(shè)計的核心,也是嵌入式文件系統(tǒng)中用戶唯一可見的部分。中間轉(zhuǎn)換層要為文件系統(tǒng)的實現(xiàn)提供與硬件無關(guān)的統(tǒng)一接口,是文件系統(tǒng)結(jié)構(gòu)規(guī)整性的基礎(chǔ)。第三層:介質(zhì)驅(qū)動層。本層的功能主要是完成對介質(zhì)的訪問。根據(jù)文件系統(tǒng)的層次結(jié)構(gòu),可以將該文件系統(tǒng)分成三大功能塊:API接口模塊、中間轉(zhuǎn)換模塊、設(shè)備驅(qū)動模塊。中間轉(zhuǎn)換模塊主要完成對存取權(quán)限的檢查、介質(zhì)的選擇、邏輯到物理的轉(zhuǎn)換。第四章 詳細設(shè)計總體設(shè)計完成之后,就可以幾種精力進行詳細設(shè)計。 文件系統(tǒng)對外提供的主要接口FRESULT f_open (FIL*, const char*, BYTE)。函數(shù)功能:讀一個文件FRESULT f_close (FIL*)。函數(shù)功能:讀一個目錄中的目錄項FRESULT f_readdir (DIR*, FILINFO*)。函數(shù)功能:獲取文件的狀態(tài)FRESULT f_mountdrv ()。函數(shù)功能:寫文件FRESULT f_sync (FIL*)。函數(shù)功能:刪除一個文件或者目錄1FRESULT f_mkdir (const char*)。 文件系統(tǒng)的主要數(shù)據(jù)結(jié)構(gòu)1)UCFS結(jié)構(gòu)體/* 文件系統(tǒng)結(jié)構(gòu)體,保存文件系統(tǒng)的有關(guān)信息 */typedef struct { BYTE fs_type。 // 當(dāng)前已打開的文件的數(shù)目 BYTE sects_clust。 // FAT表的數(shù)目 WORD n_rootdir。 // 標(biāo)記文件是否被改動過,為1時要回寫 BYTE pad1。 // 每個FAT表所占的扇區(qū)數(shù) DWORD max_clust。 // FAT區(qū)的起始扇區(qū) DWORD dirbase。 // 數(shù)據(jù)區(qū)的起始扇區(qū) DWORD winsect。 // 單個扇區(qū)緩存} UCFS。2)DIR結(jié)構(gòu)體//目錄結(jié)構(gòu)體,表示一個目錄typedef struct { DWORD sclust。 // 當(dāng)前簇 DWORD sect。 // 當(dāng)前索引} DIR。3) FIL結(jié)構(gòu)體//文件結(jié)構(gòu)體,表示一個文件typedef struct { DWORD fptr。 // 文件大小 DWORD org_clust。 // 當(dāng)前簇(fsize=0時為0) DWORD curr_sect。 // 此文件的目錄項所在的扇區(qū) BYTE* dir_ptr。 // 文件讀寫緩沖區(qū) BYTE flag。 // 當(dāng)前簇中剩余的扇區(qū)數(shù)} FIL。4) FILINFO結(jié)構(gòu)體//文件信息的結(jié)構(gòu)體,也可以表示目錄,用fattrib區(qū)分typedef struct _FILINFO { DWORD fsize。 // 文件修改日期 WORD ftime。 // 文件屬性 char fname[13]。5) win[512]數(shù)組位于 FATFS 結(jié)構(gòu)體中,作為目錄項或者 FAT 分配表的讀寫緩沖區(qū)。6) buffer指針buffer 是一個指向 512 字節(jié)緩沖區(qū)的指針,位于 FIL 結(jié)構(gòu)體中,也就相當(dāng)于是 FIL 中有一個 512 字節(jié)緩沖區(qū)的成員。用于當(dāng)文件的讀寫沒有按照 512 字節(jié)對齊的時候,作為磁盤與用戶讀寫緩沖區(qū)之間的臨時緩沖區(qū)。倘若一致,則無需執(zhí)行任何操作。當(dāng)傳入?yún)?shù)0時,0 與當(dāng)前緩存在 win[]的扇區(qū)號肯定不一樣,所以一定會同步 win[]內(nèi)容到磁盤中。函數(shù)實現(xiàn)方法:首先調(diào)用磁盤初始化函數(shù),對磁盤進行初始化。如果不是 DBR 扇區(qū),那么肯定就是 MBR 扇區(qū),再從 MBR 扇區(qū)中獲取 DBR 扇區(qū)的地址,將 DBR 扇區(qū)的內(nèi)容調(diào)取到 win[]中。以后,程序就可以從全局變量UcFs 類型的變量,訪問文件系統(tǒng)的每一個區(qū)域。如果打開或者創(chuàng)建成功,會填充 fp 指向的文件信息變量(包含文件的目錄項確切位置和文件的信息)。接下來就是從 win[]中,將文件目錄項的參數(shù)稍作轉(zhuǎn)化后傳入 FIL 類型的變量中。注意打開文件并不是打開文件的內(nèi)容,而是文件的目錄項,知道了文件的目錄項就知道了如何去查看文件的內(nèi)容。② 新建一個文件 首先調(diào)用函數(shù) trace_path 搜索文件系統(tǒng)中是否存在目標(biāo)文件,因為是新建文件肯定不存在。首先給新建文件在當(dāng)前文件夾中預(yù)定一個目錄項位置,然后填入新建文件的目錄項初始值(文件名、擴展名、屬性、創(chuàng)建時間、更新時間)到 win[]中。創(chuàng)建一個新文件,只會在其上一層目錄中添加對應(yīng)的目錄項并初始化,并不會給文件分配數(shù)據(jù)空間,當(dāng)然文件的大小肯定是 0。那么就返回文件的目錄項位置(dirscan、dir),并且將目錄項所在扇區(qū)的內(nèi)容加載到 win[]中。這里的修改都只是在 win[]中進行的,并沒有同步到磁盤。重建文件更改了原來文件在目錄中的目錄項信息,重建文件并沒有分配簇,也就是沒有分配數(shù)據(jù)空間。函數(shù)的實現(xiàn)方法:讀文件的情況有些復(fù)雜,不同的情況有不同的處理方法。 首先讀沒有對齊扇區(qū)的剩余內(nèi)容,其實這個內(nèi)容在以前的函數(shù)(以前的函數(shù)移動了文件指針)已經(jīng)將這個扇區(qū)的內(nèi)容加載到了 buffer 中。 接下來,讀取第一個簇的剩余一個扇區(qū)的內(nèi)容到用戶緩沖區(qū)。然后一次性的將一個簇鏈的所有扇區(qū)內(nèi)容讀取到用戶緩沖區(qū)中。然后將第三個簇鏈的第一個扇區(qū)內(nèi)容讀取到用戶緩沖區(qū)中。到這里為止,整個讀取操作已經(jīng)完成。5)f_write函數(shù)原型:FRESULT f_write(FIL *fp,const BYTE *buff,WORD btw, WORD *bw)函數(shù)功能 :文件寫操作,只對文件的數(shù)據(jù)區(qū)進行寫入,并沒有更新對應(yīng)的目錄項。函數(shù)的實現(xiàn)方法:
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1