32位/64位系统上的二进制文件?
我正在使用 python 结构模块来创建自定义二进制文件。
文件本身具有以下格式:
4 字节
(整数) 1 字节
(无符号字符) 4 字节
(浮点数)
4 字节
(整数) 1 字节
(无符号字符) 4 字节
(浮点数)
................................(100000 行这样的行)
4 字节
(整数) 1 字节
(无符号字符) 4 字节
(浮点)
目前,我使用 32 位机器来创建这些自定义二进制文件。我很快就计划切换到 64 位机器。
我可以使用两台 {32bit / 64bit}
机器读取/写入相同的文件吗?或者我应该期待兼容性问题?
(我将使用 Ubuntu Linux)
I am using python
struct module to create custom binary files.
The file itself has the following format:
4 bytes
(integer)1 byte
(unsigned char)4 bytes
(float)
4 bytes
(integer)1 byte
(unsigned char)4 bytes
(float)
.......................... (100000 such lines)
4 bytes
(integer)1 byte
(unsigned char)4 bytes
(float)
Currently, I am using a 32bit machine to create these custom binary files. I am soon planning on switching to a 64bit machine.
Will I be able to read/write the same files using both {32bit / 64bit}
machines? or should I expect compatibility issues?
(I will be using Ubuntu Linux for both)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
只要您的结构格式字符串使用“标准大小和对齐方式”(
<
或>
)而不是“本机大小和对齐方式”(@),您的文件可以跨平台使用。
As long as your struct format string uses "standard size and alignment" (
<
or>
) rather than "native size and alignment" (@
), your files can be used cross-platform.请参阅 http://docs.python.org/library/ struct.html#字节顺序大小和对齐
因此,这取决于您的代码是否可移植。
See http://docs.python.org/library/struct.html#byte-order-size-and-alignment
So it depends on your code if it's portable or not.
除了 32 位与 64 位之外,您还需要担心更多。您所谈论的广泛类别称为序列化。
查看 marshal 和/或 pickle 模块。
You have more to worry about than 32-bit vs. 64-bit. The broad category you are talking about is called serialization.
Have a look at the marshal and/or pickle modules.