增强uuid +增强字节序

Fra*_*ank 1 c++ boost

我需要将uuid放置在我无法控制的内存中的位置(将指针传递给我(由文件进行shm支持)),但是我必须确保在给定指针处存储的内容是可移植的,即我想使用boost :: endian来解决uuid的little endian问题。可以结合使用boost :: endian和boost:uuid吗?

Mat*_*ton 6

UUID的字节序确实很重要(与@Ferruccio相反)。UUID的字节序可能因实现和平台而异。随着讨论这里,UUID的是由RFC 4122只管辖建议是UUID的存储在big-endian格式。

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

例如:

  • RFC4122建议使用big-endian,
  • boost :: uuid使用big-endian。
  • Microsoft API(例如CoCreateGUID)使用little-endian。
  • libuuid / uuidgen使用本机字节序。
  • Python uuid可以做大做小,但您必须指定

因此,是的,要便于移植,应指定要使用哪种字节序存储它们,并根据需要进行字节交换以保持一致。