c++ - boost uuid + boost 字节序

标签 c++ boost

我需要将 uuid 放置在我无法控制的内存位置(一个指针传递给我(由文件支持的 shm)),但我必须确保我存储在给定指针处的内容是可移植,即我想使用 boost::endian 来为 uuid 确定小端。是否可以将 boost::endian 和 boost:uuid 结合起来?

最佳答案

UUID 的字节顺序很重要(与@Ferruccio 相反)。 UUID 的字节顺序可能因实现和平台而异。正如所讨论的here , UUID 受 RFC 4122 管理,它仅建议 UUID 以大端格式存储。

在特定的实现或协议(protocol)中,是的,您可以只进行字节比较。 (这是 UUID 的好处之一。)

例如:

  • RFC4122推荐big-endian,
  • boost::uuid 使用 big-endian。
  • Microsoft API(例如 CoCreateGUID)使用小尾数法。
  • libuuid/uuidgen 使用 native 字节顺序。
  • Python uuid可大可小,但必须说明

所以是的,为了便于携带,您应该指定您使用什么字节序来存储它们并根据需要进行字节交换以保持一致。

关于c++ - boost uuid + boost 字节序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31976983/

相关文章:

c++ - 在结构数组中设置多行错误

c++ - 如何从内存中读取第三方应用程序的变量?

c++ - 为什么 boost::mutex 比 std::mutex 快于 vs2013?

C++。 std::condition_variable 和多个等待线程

c++ - 在 jemalloc 中获取每个内存分配的 bin 大小

c++ - 尝试从其自己的类访问公共(public)变量时出现奇怪的 SIGSEGV

c++ - 由于 "_fchmodat"在 mac 上使用 boost::filesystem 失败

c++ - boost multi_index 反向迭代器删除麻烦

Linux 上的 Boost 库调试和发布构建

c++ - Upwork C++ 测试的错误答案