在C中简单生成GUID

时间:2009-09-03 19:03:10

标签: c guid

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

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

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

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

感谢。

2 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:2)

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