2011-10-11 47 views
2

我想寫一些基本的磁盤掃描程序實用程序。基本上我希望能夠以系統磁盤實用程序的方式(如在Windows中進行錯誤檢查和碎片整理)讀取某些文件的原始字節,並將其寫入磁盤。我想在C做。如何編寫自己的基本磁盤掃描程序

我應該做什麼第一步?顯然fopen是不夠的。

任何指導將非常感激(我不要求一個解決方案,只是一點理論,並推向一個正確的方向,因爲我甚至不知道從哪裏開始......)。

回答

0

fopen和fread會工作。如果您想使用無緩衝接口,請改爲使用openread。打開和讀取是POSIX標準的一部分,因此它們也可以在Windows中工作,儘管您可能希望爲Windows找到手冊頁,以確保能夠捕獲行爲中的細微差異。

+0

**的fopen **和** **的fread讓我讀文件的內容,但是問題是關於除了內容之外,與磁盤上的每個文件一起存儲的所有附加數據。因此,假設0b長的文本文件仍然被系統識別,以及它在磁盤上的名稱和位置,因此它不能是0b長,你不覺得嗎?文件是[contents + something],我想讀這個東西。 – bor

+0

您可以使用諸如readdir(* nix)或FindFirstFile(windows)之類的調用訪問元數據。 –

+0

謝謝@Klas。 FindFirstFile確實會給我一些關於該文件的額外數據,但這不是我所需要的。我希望能夠訪問寫入磁盤的原始數據而不是系統首先處理的元數據。 aix所說的更多是關於這個話題。 – bor

1

你冒險進入駕駛員的土地在這裏。大多數文件訪問API仍然會使您的級別高於磁盤本身。您可能正在與CD,RAMDisk,SAN或HDD上的文件系統通話,您不應該在意。

如果需要直接命中磁盤,然後卷梟雄API應該幫助你在Windows上:

Volume Management API