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

正文內(nèi)容

word版可編輯-操作系統(tǒng)課程設(shè)計報告精心整理docxdocx(已改無錯字)

2022-08-12 12:13:05 本頁面
  

【正文】 f 指向用戶緩沖區(qū) btr 準(zhǔn)備讀取的字節(jié)數(shù) br 指向?qū)嶋H讀取字節(jié)數(shù)的變量輸出參數(shù):FRESULT 成功與否備注:函數(shù)在讀取文件內(nèi)容后,還會移動文件指針到下一此讀寫操作的起點。函數(shù)的實現(xiàn)方法:讀文件的情況有些復(fù)雜,不同的情況有不同的處理方法。開始讀的時候,文件指針并沒有位于扇區(qū)邊界上(512 字節(jié)對齊),讀取的跨度為 3 個簇。 首先讀沒有對齊扇區(qū)的剩余內(nèi)容,其實這個內(nèi)容在以前的函數(shù)(以前的函數(shù)移動了文件指針)已經(jīng)將這個扇區(qū)的內(nèi)容加載到了 buffer 中。所以,直接從緩沖區(qū) buffer 中讀取此扇區(qū)文件指針以后的剩余內(nèi)容到用戶緩沖區(qū)。 接下來,讀取第一個簇的剩余一個扇區(qū)的內(nèi)容到用戶緩沖區(qū)。通過 get_cluster 函數(shù)從 FAT 表中,獲取第二個簇鏈的位置。然后一次性的將一個簇鏈的所有扇區(qū)內(nèi)容讀取到用戶緩沖區(qū)中。再通過 get_cluster 函數(shù)從 FAT 表中,獲取第三個簇鏈的位置。然后將第三個簇鏈的第一個扇區(qū)內(nèi)容讀取到用戶緩沖區(qū)中。 最后,將最后所需要讀取剩余內(nèi)容所在的扇區(qū)(剩余部分不夠一個扇區(qū))讀取到 buffer 中,然后再從 buffer 中讀取所需要的剩余內(nèi)容到用戶緩沖區(qū)中。到這里為止,整個讀取操作已經(jīng)完成。由于 buffer 中還有一部分內(nèi)容沒讀,假設(shè)繼續(xù)調(diào)用函數(shù) f_read 函數(shù)讀取數(shù)據(jù),那么肯定先從這個 buffer 緩沖區(qū)中將文件指針以后的扇區(qū)剩余內(nèi)容讀取到用戶緩沖區(qū)。5)f_write函數(shù)原型:FRESULT f_write(FIL *fp,const BYTE *buff,WORD btw, WORD *bw)函數(shù)功能 :文件寫操作,只對文件的數(shù)據(jù)區(qū)進(jìn)行寫入,并沒有更新對應(yīng)的目錄項。 輸入?yún)?shù):fp 文件信息指針 buff 指向讀取的用戶緩沖區(qū) btw 準(zhǔn)備寫入的字節(jié)數(shù) bw 返回實際寫入的字節(jié)數(shù) 輸出參數(shù):FRESULT 成功與否備注:函數(shù)在寫完文件內(nèi)容后,還會移動文件指針到下一此讀寫操作的起點。函數(shù)的實現(xiàn)方法:寫文件的情況與讀取文件內(nèi)容類似。開始寫的時候,文件指針并沒有位于扇區(qū)邊界上(512 字節(jié)對齊),寫入數(shù)據(jù)的跨度為 3 個簇。首先寫入沒有對齊扇區(qū)的剩余內(nèi)容,其實這個內(nèi)容在以前的函數(shù)(以前的函數(shù)移動了文件指針)已經(jīng)將這個扇區(qū)的內(nèi)容加載到了 buffer 中。所以,將用戶緩沖區(qū)中對應(yīng)的內(nèi)容寫入到 buffer 中(從文件指針開始到 buffer 結(jié)束的這部分空間)。然后再將 buffer 中的內(nèi)容寫入到磁盤對應(yīng)的扇區(qū)。 接下來,將用戶緩沖區(qū)寫入到第一個簇的剩余一個扇區(qū)中。通過 creat_chain 函數(shù)從 FAT 表中,獲取第二個簇鏈的位置(如果是文件有剩余簇鏈則使用文件的剩余簇鏈,如果已經(jīng)用完則重新從 FAT 表中搜索一個空的簇鏈連接到此文件中,也就是更改了文件的大?。?。然后一次性的將用戶緩沖區(qū)寫入到第二個簇鏈的所有扇區(qū)中。再通過get_cluster 函數(shù)從 FAT 表中,獲取第三個簇鏈的位置。然后將用戶緩沖區(qū)寫入到第三個簇鏈的第一個扇區(qū)中。 最后,將最后所需要寫入剩余內(nèi)容所在的扇區(qū)(剩余部分不夠一個扇區(qū))讀取到 buffer 中,然后再將用戶緩沖區(qū)中剩余內(nèi)容寫入到 buffer 中。到這里為止,整個讀取操作已經(jīng)完成。注意這里并沒有將 buffer 的內(nèi)容寫入到磁盤中。當(dāng)調(diào)用 f_sync 函數(shù)的時候才會將 buffer 的內(nèi)容同步到磁盤。 在函數(shù)返回之前,還需要判斷文件大小是否更改了,如果大小更改了則要更新文件的大小,并將 FA__WRITTEN記錄到文件的 flag 中。這樣做的目的是為了當(dāng)執(zhí)行 f_sync 時,可以根據(jù) FA__WRITTEN 判斷出文件修改過,從而更新文件的目錄項。6)f_sync函數(shù)原型:FRESULT f_sync (FIL *fp)函數(shù)功能:在關(guān)閉文件之前,同步文件緩沖區(qū)中的內(nèi)容到磁盤,同步文件目錄項信息到磁盤。輸入?yún)?shù):fp 文件信息指針 輸出參數(shù):FRESULT 成功與否函數(shù)實現(xiàn)方法:判斷文件是否修改過,如果修改過再判斷文件 buffer 緩沖區(qū)是否修改過,如果修改過則同步到磁盤中文件對應(yīng)的數(shù)據(jù)空間中。如果文件修改過,還要更新文件的目錄項,這時的修改也是在 win[]中的。 最后通過調(diào)用 move_window(0),將文件目錄項信息同步到磁盤中。7)f_opendir函數(shù)原型:FRESULT f_opendir (DIR *scan, const char *path)函數(shù)功能:打開一個目錄 輸入?yún)?shù):scan 指向返回找到的目錄項結(jié)構(gòu)體 path 指向路徑 輸出參數(shù):FRESULT 成功與否函數(shù)的實現(xiàn)方法:首先調(diào)用函數(shù) trace_path 搜索文件系統(tǒng)中是否存在所要打開的目錄,如果不存在就返回失??;如果存在就返回目錄對應(yīng)目錄項的位置(dirscan、dir),并且將目錄對應(yīng)目錄項所在扇區(qū)的內(nèi)容加載到 win[]中。接下來判斷找到的是不是一個目錄。如果就是一個目錄的話,就從 win[]中將目錄對應(yīng)目錄項的參數(shù)稍作轉(zhuǎn)化后傳入 DIR 類型的變量中。到此,一個目錄就算完整的打開了。注意打開目錄并不是打開目錄的內(nèi)容,而是目錄對應(yīng)的目錄項,知道了目錄對應(yīng)的目錄項就知道了如何去查看目錄的內(nèi)容。以后,通過 DIR 類型的變量就可以操作對應(yīng)的目錄。8)f_mkdir函數(shù)原型:FRESULT f_mkdir (const char *path)函數(shù)功能:創(chuàng)建一個目錄 新建一個目錄,它雖然是一個空目錄(有效存儲內(nèi)容為 0),但是系統(tǒng)已經(jīng)為它分配了一個簇的數(shù)據(jù)空間,用于保存它的目錄項。這是與新建一個 普通文件區(qū)別很大的地方。另外,新建一個目錄時,對新建目錄在上一層目錄的目錄項以及新建目錄中的目錄項的初始化,全部都在 win[]中進(jìn)行操作。輸入?yún)?shù):path 指向路徑的指針 輸出參數(shù):FRESULT 成功與否函數(shù)的實現(xiàn)方法:首先調(diào)用函數(shù) trace_path 搜索文件系統(tǒng)中是否存在目標(biāo)目錄,因為是新建目錄肯定不存在。那么不存在目錄時就返回新建目錄所在當(dāng)前文件夾的目錄指針(dirscan、dir)第一個空目錄項位置,并且將當(dāng)前目錄指針?biāo)谏葏^(qū)的內(nèi)容加載到 win[]中。 接下來給新建目錄在當(dāng)前文件夾中預(yù)定一個目錄項位置。然后調(diào)用 creat_chain 函數(shù)在 FAT 表中為新建目錄找到一個可用的數(shù)據(jù)簇,再調(diào)用 move_window(0)同步 FAT 表到磁盤中。為新建目錄的數(shù)據(jù)簇初始化,并且初始化第一個目錄項。最后,填入新建目錄的目錄項初始值(目錄名、屬性、創(chuàng)建時間 、數(shù)據(jù)簇起始位置)到 win[]中。然后同步到磁盤中,完成整個新建目錄的工作。9)f_delete函數(shù)原型:FRESULT f_delete (const char *path)函數(shù)功能:刪除一個文件或者目錄刪除目錄或者文件的簇鏈(回收數(shù)據(jù)空間)。文件或者目錄的目錄項被設(shè)置成為刪除(0xE5),注意目錄項并沒有回收,只是標(biāo)記為刪除。輸入?yún)?shù):path 指向路徑的指針 輸出參數(shù):FRESULT 成功與否函數(shù)的實現(xiàn)方法:首先調(diào)用函數(shù) trace_path 搜索文件系統(tǒng)中是否存在所要刪除的目錄或者文件,如果不存在就返回失敗;如果存在就返回對應(yīng)目錄項的位置(dirscan、dir),并且將對應(yīng)目錄項所在扇區(qū)的內(nèi)容加載
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1