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

正文內(nèi)容

word版可編輯-操作系統(tǒng)課程設計報告精心整理docxdocx(編輯修改稿)

2024-08-11 12:13 本頁面
 

【文章內(nèi)容簡介】 //文件結(jié)構(gòu)體,表示一個文件typedef struct { DWORD fptr。 // 文件讀寫指針 DWORD fsize。 // 文件大小 DWORD org_clust。 // 文件起始簇 DWORD curr_clust。 // 當前簇(fsize=0時為0) DWORD curr_sect。 // 當前扇區(qū) DWORD dir_sect。 // 此文件的目錄項所在的扇區(qū) BYTE* dir_ptr。 // 指向文件目錄項的指針 BYTE* buffer。 // 文件讀寫緩沖區(qū) BYTE flag。 // 文件狀態(tài)標識 BYTE sect_clust。 // 當前簇中剩余的扇區(qū)數(shù)} FIL。記錄普通文件(不是目錄文件)的詳細信息,比如文件對應的目錄項位置,文件起始簇號,文件指針,文件大小等。4) FILINFO結(jié)構(gòu)體//文件信息的結(jié)構(gòu)體,也可以表示目錄,用fattrib區(qū)分typedef struct _FILINFO { DWORD fsize。 // 文件大小 WORD fdate。 // 文件修改日期 WORD ftime。 // 文件修改時間 BYTE fattrib。 // 文件屬性 char fname[13]。 // 文件名 ( 格式)} FILINFO。5) win[512]數(shù)組位于 FATFS 結(jié)構(gòu)體中,作為目錄項或者 FAT 分配表的讀寫緩沖區(qū)。它不是某一個文件專有的緩沖區(qū),而是整個文件系統(tǒng)的公共讀寫緩沖區(qū)。6) buffer指針buffer 是一個指向 512 字節(jié)緩沖區(qū)的指針,位于 FIL 結(jié)構(gòu)體中,也就相當于是 FIL 中有一個 512 字節(jié)緩沖區(qū)的成員。此 512 字節(jié)的緩沖區(qū),是一個文件的專有緩沖區(qū)。用于當文件的讀寫沒有按照 512 字節(jié)對齊的時候,作為磁盤與用戶讀寫緩沖區(qū)之間的臨時緩沖區(qū)。 各個函數(shù)的詳細實現(xiàn)1)move_window函數(shù)原型:BOOL move_window ( DWORD sector ) 函數(shù)功能:win[]操作函數(shù)(DBR、FAT 表、目錄項) 1讀取新的扇區(qū)內(nèi)容到臨時緩沖區(qū) win[] 2同步 win[]中的內(nèi)容到磁盤注意: 1 如果讀取新的扇區(qū)號就是現(xiàn)在存儲在 win[]中的扇區(qū)號,就什么也不操作 2 如果不同,則根據(jù)情況同步 win[]到磁盤中,并且將新扇區(qū)中的內(nèi)容讀取到 win[]中 3 如果 sector 為 0,則函數(shù)功能變?yōu)橥?win[]到磁盤中,不會讀取 0 扇區(qū)的內(nèi)容到 win[]輸入?yún)?shù):sector 要讀取扇區(qū)的扇區(qū)號 與其他函數(shù)的關(guān)系:此函數(shù)被下列函數(shù)直接或間接調(diào)用第一類:操作 FAT 表 ① get_cluster ② put_cluster ③ remove_chain ④ create_chain 第二類:操作 MBR、DBR ⑤ check_fs 第三類:操作目錄項所在扇區(qū)(目錄的數(shù)據(jù)空間) ⑥ trace_path程序的實現(xiàn)方法:首先判斷要讀取的扇區(qū)號是否與當前緩存在 win[]中的扇區(qū)號一致。倘若一致,則無需執(zhí)行任何操作。倘若不一致,再判斷緩存在 win[]中的內(nèi)容是否被修改過,如果修改過,就需要更新到磁盤,最后還要把新扇區(qū)中的內(nèi)容加載到 win[]中。當傳入?yún)?shù)0時,0 與當前緩存在 win[]的扇區(qū)號肯定不一樣,所以一定會同步 win[]內(nèi)容到磁盤中。2)f_mountdrv函數(shù)原型:FRESULT f_mountdrv()函數(shù)功能:初始化磁盤;初始化UcFs對象,記錄物理磁盤的相關(guān)參數(shù)。函數(shù)實現(xiàn)方法:首先調(diào)用磁盤初始化函數(shù),對磁盤進行初始化。然后讀取物理磁盤 0 號扇區(qū)的內(nèi)容,判斷是否是 DBR 扇區(qū)。如果不是 DBR 扇區(qū),那么肯定就是 MBR 扇區(qū),再從 MBR 扇區(qū)中獲取 DBR 扇區(qū)的地址,將 DBR 扇區(qū)的內(nèi)容調(diào)取到 win[]中。接下來從 win[]中,填充 UCFS 類型的系統(tǒng)對象,這樣物理磁盤和文件系統(tǒng)的參數(shù)就被保存到了這個對象中。以后,程序就可以從全局變量UcFs 類型的變量,訪問文件系統(tǒng)的每一個區(qū)域。3)f_open函數(shù)原型:FRESULT f_open (FIL *fp, const char *path, BYTE mode)函數(shù)功能:以指定的方式打開或者新建一個文件。如果打開或者創(chuàng)建成功,會填充 fp 指向的文件信息變量(包含文件的目錄項確切位置和文件的信息)。函數(shù)參數(shù):fp 指向文件信息變量的指針 path 指向文件的路徑 mode 打開方式輸出參數(shù):FR_OK 打開或者創(chuàng)建成功其他值 打開或者創(chuàng)建失敗函數(shù)實現(xiàn)方法:① 以只讀的方式打開一個已經(jīng)存在的文件首先調(diào)用函數(shù) trace_path 搜索文件系統(tǒng)中是否存在目標文件,如果不存在就返回失敗;如果存在就返回文件的目錄項位置(dirscan、dir),并且將目錄項所在扇區(qū)的內(nèi)容加載到 win[]中。接下來就是從 win[]中,將文件目錄項的參數(shù)稍作轉(zhuǎn)化后傳入 FIL 類型的變量中。到此,一個文件就算完整的打開了。注意打開文件并不是打開文件的內(nèi)容,而是文件的目錄項,知道了文件的目錄項就知道了如何去查看文件的內(nèi)容。以后,通過 FIL 類型的變量就可以操作對應的文件。② 新建一個文件 首先調(diào)用函數(shù) trace_path 搜索文件系統(tǒng)中是否存在目標文件,因為是新建文件肯定不存在。那么不存在的文件就返回新建文件當前文件夾的目錄指針位置(dirscan、dir)第一個空目錄項所在位置,并且將當前目錄指針所在扇區(qū)的內(nèi)容加載到 win[]中。首先給新建文件在當前文件夾中預定一個目錄項位置,然后填入新建文件的目錄項初始值(文件名、擴展名、屬性、創(chuàng)建時間、更新時間)到 win[]中。注意這里并不會將新建文件目錄項所在扇區(qū)同步到磁盤中,只有當調(diào)用 f_sync 函數(shù)時才會將文件的目錄項所在扇區(qū)同步到磁盤。創(chuàng)建一個新文件,只會在其上一層目錄中添加對應的目錄項并初始化,并不會給文件分配數(shù)據(jù)空間,當然文件的大小肯定是 0。③ 重建一個文件 首先調(diào)用函數(shù) trace_path 搜索文件系統(tǒng)中是否存在目標文件,因為是重建文件肯定存在。那么就返回文件的目錄項位置(dirscan、dir),并且將目錄項所在扇區(qū)的內(nèi)容加載到 win[]中。重建首先將文件的簇鏈刪除,然后設置文件起始位置和文件大小為空,還需要初始化文件的屬性、創(chuàng)建時間和修改時間。這里的修改都只是在 win[]中進行的,并沒有同步到磁盤。只有當調(diào)用 f_sync 函數(shù)時才會將文件的目錄項所在扇區(qū)同步到磁盤。重建文件更改了原來文件在目錄中的目錄項信息,重建文件并沒有分配簇,也就是沒有分配數(shù)據(jù)空間。4)f_read函數(shù)原型:FRESULT f_read (FIL *fp, BYTE *buff, WORD btr, WORD *br)函數(shù)功能:文件讀操作輸入?yún)?shù):fp 文件信息指針 buf
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1