實驗十一 讀 寫磁碟指定位置資訊(只需完成讀取)

2021-10-23 19:01:01 字數 3213 閱讀 8337

(1)了解磁碟的物理知識。

(2)掌握windows系統提供的有關對磁碟操作api。

(3)根據輸入的扇區號讀/寫指定扇區。

1.設定讀/寫操作的位置

函式setfilepointer()用於移動乙個開啟檔案中的讀/寫指標,這裡磁碟裝置被當作檔案處理,因此用於移動檔案讀/寫指標在磁碟上的位置。

原型:

dword setfilepointer(

handle hfile, //開啟的檔案控制代碼

long lpdistancetomove, //指標要移動的偏移量的低32位,用於指定移動檔案指標的位元組大小

plong lpdistancetomovehigh, //指標要移動的偏移量的高32位

dword dwmovemethod //檔案指標移動的初始位置,如圖5-2

);

表5-2dwmovemethod的值值描述

file_begin

開始點為0或者為檔案的開始位置

file_current

開始點為檔案指標的當前位置

file_end

開始點為檔案的結尾位置

2.讀檔案

讀取磁碟指定區域的內容

原型:

bool readfile(

handle hfile, //要讀的檔案的控制代碼

lpvoid lpbuffer, //指向檔案緩衝區的指標

dword nnumberofbytestoread, //從檔案中要讀取的位元組數

lpdword lpnumberofbytesread, //指向從檔案中要讀取的位元組數的指標

);

3.寫檔案

該函式將資料寫入磁碟指定區域

bool readfile(

handle hfile, //要讀的檔案的控制代碼

lpvoid lpbuffer, //指向檔案緩衝區的指標

dword nnumberofbytestowrite, //從檔案中要讀取的位元組數

lpdword lpnumberofbyteswritten, //指向從檔案中要讀取的位元組數的指標

);

在本章實驗十的基礎上,繼續完成該實驗。完成如下功能:

對給定的扇區號讀取該扇區的內容。

深入理解作業系統將裝置當作檔案處理的特性,理解函式setfilepointer()、readfile()及writefile()中每個引數的實際意義並能在本實驗中正確使用。

}應用程式首先顯示軟盤的資訊,然後提示使用者進行選擇「please select read or write! input 『r』 to read,』q』 to quit!」當使用者輸入r表示要讀軟盤後,應用程式提示使用者「please input the sector number to read to:」輸入要讀的磁碟號,當使用者輸入2表示要讀第2個道的內容,應用程式顯示「content:」後分別以字元形式和十六進製制形式顯示軟盤上第2道的內容。

python整理十一 讀寫unicode檔案

對於讀寫unicode檔案,相對比較簡單 如下 coding utf 8 import os import codecs def writefile fn,v ls f codecs.open fn,wb utf 8 for i in v ls f.write i os.linesep f.clos...

多執行緒 十一 讀寫鎖SRWLock

參考自 本篇將介紹一種新方法 讀寫鎖srwlock 來解決這一問題。讀寫鎖在對資源進行保護的同時,還能區分想要讀取資源值的執行緒 讀取者執行緒 和想要更新資源的執行緒 寫入者執行緒 對於讀取者執行緒,讀寫鎖會允許他們併發的執行。當有寫入者執行緒在占有資源時,讀寫鎖會讓其它寫入者執行緒和讀取者執行緒等...

MYSQL資料庫學習筆記十一 讀寫鎖

1.鎖介紹參考部落格 按照鎖的粒度來說,mysql主要包含三種型別 級別 的鎖定機制 全域性鎖 鎖的是整個database。由mysql的sql layer層實現的 表級鎖 鎖的是某個table。由mysql的sql layer層實現的 show open tables 行級鎖 鎖的是某行資料,也可...