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