標籤:
其實,如果你學習過C語言的話,直接用 stdio.h
中函數是最簡單的,也就是使用 fopen( "xxxx.xxx", "rb" ); 然後再調用 fread/fwrite; 關閉時調用 fclose 就可以了。
如果使用 Windows Native API 中的 CreateFile, 是不需要區分什麼二進位不二進位的,只要此函數的傳回值不是 INVALID_HANDLE_VALUE, 就可以繼續使用 ReadFile/WriteFile 來進行讀寫,最後再用 CloseHandle 來關閉。這在 MSDN 的 "Platform SDK: Files and I/O" 中直接有例子。
再深入一點說,stdio.h 中 fopen 時所謂的 "rb" 或 "wb" 的 "b" 即二進位模式,與文字模式("t")的區別僅僅在於對於是否解析 0x0D & 0x0A (斷行符號和分行符號)而已,這主要表現在 fgets / fscanf 之類要對字串進行操作的函數上,事實上即使用 "b" 方式調用 fopen 後 fgets/fscanf 等函數也是可用的。如果不涉及字串,"b" 和 "t" 沒有多大的差別。
什麼是二進位:
通用二進位程式就是一個包,Bundle,又譯束,是Mac OS X系統中一種應用程式格式,實際上是特殊的檔案夾可以直接雙擊來運行,檔案夾中包含主程式、各種資源、文檔和協助檔案等,使得Mac OS X中的軟體一般無需安裝,複製到硬碟上即可運行,且易於本地化和國際化。Carbon和Cocoa是兩種Mac平台的應用程式架構(類似於MFC、VCL、GTK+、Qt等),前者能相容Mac OS 8-9的API,因此能夠產生可以運行於Mac OS Classic和OS X的應用程式,後者則只能產生OS X程式,但可能能夠運行於IBM PowerPC RISC晶片和Intel x86 CISC晶片兩種構架的Mac OS X系統中,即Universal Binary ——通用二進位程式。]?
windows API讀寫二進位檔案