1
我们的应用程序使用几个内存映射文件在几个进程之间进行通信。生产在64位solaris上运行,开发机器是32位的linux。在未来,我们希望在所有环境中使用64位Linux。编译已经完成,现在我需要存储在内存映射文件中的数据。不幸的是,如果我使用32位linux的文件,我会得到一个“总线错误”。如果我使用了64位solaris的文件,这个过程就会崩溃。使用内存映射文件从Solaris 64位或Linux 32位到Linux 64位
据我所知,总线错误是由于32位文件(地址超出文件末尾)的地址错误而发生的。另外,solaris文件似乎与Linux系统不兼容。因此,我在64位的linux上创建了新的内存映射文件,应用程序工作,但显然没有数据。
有没有一种方法可以在我的新64位Linux系统上读取这些文件的旧版本?我想编写自己的转换程序来提取数据并填充新生成的文件。
绝对没有办法来帮助你在那里有什么。看起来你的二进制文件格式在32位和64位之间不可移植,并且没有明确的字节顺序。只有你可以做转换。 – Mat