gpt4 book ai didi

c++ - Unix(大端)代码和Linux(小端)上的相同代码,创建不同的输出直径文件

转载 作者:行者123 更新时间:2023-11-30 20:46:55 34 4
gpt4 key购买 nike

我们有一个 Unix 代码来从 .xml 文件创建直径文件作为输入。由于我们已经迁移到 Linux 平台,我们需要创建相同的实用程序,代码已成功编译,但实用程序未按预期创建输出文件内容,每个字节的位顺序颠倒,我认为这是因为 Linux 是小端字节序。

要写入输出文件的消息 block 的格式为:

ACE_Message_Block* mb = m_pReqMsgBlock;
while (mb) {
out.write(mb->rd_ptr(), mb->size());
mb = mb->cont();
}

任何人都可以建议在代码中添加哪些额外内容,以便可以按预期方式写入字节吗?

最佳答案

您必须从大端格式转换为小端格式。这必须针对结构中的 16 位和 32 位值分别完成。

htonshtonl 等函数可分别用于转换 16 位和 32 位整数。

数字转换后,就可以通过write函数写入。

关于c++ - Unix(大端)代码和Linux(小端)上的相同代码,创建不同的输出直径文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37811352/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com