我一直在用C語言(Turbo C)在磁盤驅動器上運行12位FAT(FAT12)和16位FAT(FAT16) 16位OS MS-DOS。直接在win32api中讀取和寫入硬盤,如biosdisk或ms-dos中的absread
我能夠直接操縱扇區。
FAT32很複雜,因爲扇區像鏈接列表一樣存儲,不像FAT32以外的其他FAT。
我想直接使用32位C語言(win32 api)讀取寫入硬盤,USB磁盤。
我看到some code,它使用/ device /來訪問磁盤,在biosdisk中磁盤從0開始編號,我想。我正在操縱像頭,部門,鋼瓶......
請諮詢如何讀取硬盤直接逐個扇區或如何讀低水平寫硬盤。
我必須去彙編語言嗎?
編輯
一個場景,爲什麼我需要直接操作硬盤是我想寫一個文件保持我自己的FAT甚至從文件系統隱藏,但標誌着這些部門所使用。所以它只是隱藏了其他用戶,操作系統甚至我的文件,除了我只能訪問這些文件的程序外。這只是一點,其他人只是在玩耍而已。 :)
真正的問題是爲什麼你使用古老的編譯器在16位操作系統下操作FAT16磁盤。 「這純粹是學術」的典型理由不適用於此。這幾乎是完全浪費時間。 – 2011-12-20 09:58:17
另外,從操作系統的角度來看,硬盤並不是特別的東西,它只是一個文件。您可以使用相同的API調用打開和讀取/寫入硬盤。唯一的問題是,硬盤當然不是一個普通的文件。所以出於明顯的安全原因,您只能以管理員身份執行此操作。 – Damon 2011-12-20 10:16:19
沒有這樣的事情在MS-DOS管理員!還有一件好事,因爲我不認爲Turbo C對嵌入清單有任何支持。 – 2011-12-20 10:31:17