簡體   English   中英

32 位/64 位系統上的二進制文件?

[英]Binary Files on 32bit / 64bit systems?

我正在使用python結構模塊來創建自定義二進制文件。

該文件本身具有以下格式:

4 bytes (整數) 1 byte (無符號字符) 4 bytes (浮點數)

4 bytes (整數) 1 byte (無符號字符) 4 bytes (浮點數)

.........................( 100000 條這樣的行

4 bytes (整數) 1 byte (無符號字符) 4 bytes (浮點數)


目前,我正在使用32 位機器來創建這些自定義二進制文件。 我很快就打算切換到64 位機器

我可以使用兩台{32bit / 64bit}機器讀/寫相同的文件嗎? 還是我應該期待兼容性問題?

(我將同時使用 Ubuntu Linux)

只要您的結構格式字符串使用“標准大小和對齊方式”( <> )而不是“本機大小和對齊方式”( @ ),您的文件就可以跨平台使用。

http://docs.python.org/library/struct.html#byte-order-size-and-alignment

默認情況下,C 類型以機器的本機格式和字節順序表示,並在必要時通過跳過填充字節來正確對齊(根據 C 編譯器使用的規則)。

因此,它是否可移植取決於您的代碼。

除了 32 位與 64 位之外,您還需要擔心更多。 您正在談論的廣泛類別稱為序列化

看看marshal和/或pickle模塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM