我們有一個Unix代碼來創建直徑文件作爲輸入.xml文件。 由於我們已經轉移到Linux平臺,我們需要創建相同的實用程序,代碼編譯成功,但實用程序沒有按預期創建輸出文件內容,爲了每個字節都反轉位,我認爲它是因爲Linux是小端。Linux上的Unix(big endian)代碼和相同的代碼(小端),創建不同的輸出直徑文件
消息塊被寫入到輸出文件是格式:
ACE_Message_Block* mb = m_pReqMsgBlock;
while (mb) {
out.write(mb->rd_ptr(), mb->size());
mb = mb->cont();
}
任何人都可以提出什麼額外的可以被添加到代碼,以便可以字節預期的方式寫的?
「Linux是小端」 - 不,那是你的機器!如果你的代碼依賴於數據的特定表示,那麼它寫得很糟糕。使用適當的序列化與bitshifts並且從不依賴實現特定的行爲。 – Olaf
試着看看是否扭轉每一個位都會有所幫助。 http://stackoverflow.com/questions/2602823/in-c-c-whats-the-simplest-way-to-reverse-the-order-of-bits-in-a-byte。請注意,只有在將文件傳輸到具有不同字節的系統時才能執行此操作。 –
以前的平臺是什麼?並請指明您的實際和預期產出。 –