在C中简单生成GUID

我觉得这里的GUID / UUID问题已经完成,但我似乎无法找到我正在寻找的东西。 我需要一个能在C中生成V4 GUID的函数,即与C#中的Guid.NewGuid本质上兼容的东西。

这必须适用于Windows(XP,Server 2003/8等)和3种不同的Unix发行版(AIX,Sun和HP)。

我已经看过一些规范白皮书,有些甚至有一些示例实现,但似乎总是存在适当的随机数问题,或者它们只生成V1或V3 UUID等.UUIDs的维基百科页面指出了我在几个示例库中,但这些对于我在这里要完成的工作来说太重了。

我非常强烈地感觉到我可以自己实现一些东西,但是如果有一些非常简单和轻量的东西我可以放弃,我不想浪费时间重新发明轮子。任何人都有东西或知道什么?

谢谢。

CoCreateGuid是所有Windowsforms的标准配置。 Linux标准是libuuid ,它是所有Linux版本的标准,应该是轻量级的。 我不知道任何适用于Windows和Unix的库。 我认为Windows和Linux的#if分支在这里实际上是合适的。

实际上CoCreateGuid()调用UuidCreate() 。 生成的数据类型(UUID,GUID)完全相同。 在Windows上,您可以使用这两个函数来创建GUID