370 likes | 523 Views
第 7 章. 磁碟作業與檔案系統. 本章提要. 檔案與檔案系統 代碼式的檔案管理 FILE HANDLE MS-DOS 的檔案處理功能呼叫 檔案處理的實例 程式前置區 PSP 與命令參數 MS-DOS 樹狀檔案系統支援 DUMP SECTOR:int 25h、int 26h. 檔案與檔案系統. 檔案是資料的集合, 通常是存於磁片或磁帶裡。由於檔案不只一個, 因此必須把檔案做有條理的組織, 檔案組織與管理的規則叫做 檔案系統. FILE HANDLE 的觀念.
E N D
第 7 章 磁碟作業與檔案系統
本章提要 • 檔案與檔案系統 • 代碼式的檔案管理 FILE HANDLE • MS-DOS 的檔案處理功能呼叫 • 檔案處理的實例 • 程式前置區 PSP 與命令參數 • MS-DOS 樹狀檔案系統支援 • DUMP SECTOR:int 25h、int 26h
檔案與檔案系統 • 檔案是資料的集合, 通常是存於磁片或磁帶裡。由於檔案不只一個, 因此必須把檔案做有條理的組織, 檔案組織與管理的規則叫做檔案系統
FILE HANDLE 的觀念 • 這是來自 Unix File Descriptor 的觀念。當我們 OPEN 或 CREATE 一個檔案時, DOS 就給予此檔案一個號碼, 凡此以後直到檔案 CLOSE 為止, 我們就不直接提到檔名, 而用 DOS 所給的號碼來代表檔案。這種用以代表檔案的號碼, 就叫做檔案掛號碼或檔案代碼 (FILE HANDLE)
檔案的結構 • 整個檔案就是一個一個的字元排列而成, 然後用一個讀寫指位器 (R/W Pointer) 指向讀寫位置, 讀寫動作是以 BYTE 為單位:
檔案的屬性 • 檔案可分成很多種類, MS-DOS 以一個叫 attribute (屬性) 的 byte 來記錄檔案的種類, 此 byte 的每一 bit 代表一種檔案屬性, 建立新檔時要指定其屬性:
設定檔案的開啟模式 • BIT 2~0:
認識 PSP • PSP 是使用者與系統溝通的重要資訊區。當程式載入執行之初, DOS 會主動的與使用者程式做一些必要而基本的訊息交換。DOS 這些必要訊息的交換便是經由 PSP 來達成的
PSP 的 3 個區域 • 00H ~ 5BH:相關資訊及位址區 • 5CH ~ 7FH:FCB 使用區 • 80H ~ FFH:DTA 或參數區
參數區與 DTA:80H ~ FFH • 鍵入這樣的命令: • 在命令執行之初, DOS 會在 PSP 的 80h ~ ffh 區間填入:
DTA 的問題 • 最初 DOS 是把命令後的參數放在 PSP 的 DTA 內, 然而每次 4eh、4fh 呼叫搜尋到檔案時, 也會把檔案的相關資料放在 DTA:
work 工作區的資料結構 • 因 MS-DOS 徑名最長為 64 bytes, 所以 work 以每 64 bytes 為一單位:
work 工作區的資料結構 • 搜尋完所有的子目錄後, work 工作區就變成:
work 工作區的資料結構 • 將 work 區設在程式下方的空區:
DUMP SECTOR:int 25h、int 26h • Int 25h 與 int 26h 是一對專門用來讀寫磁區的中斷系統呼叫。使用時, 各暫存器之設定格式如下: • al:指定所欲讀寫之磁碟機 • ds:bx:指向 DTA 的起始位址 • cx:指定所欲讀寫的磁區數 • dx:指定讀寫之起始磁區號碼