Простое создание GUID в C

Мне кажется, что GUID/UUID были доведены до смерти здесь, но я не могу найти то, что я ищу. Мне нужна функция, которая будет генерировать VID GUID в C, то есть что-то, что по существу совместимо с Guid.NewGuid из С#.

Это должно работать на Windows (XP, Server 2003/8 и т.д.) и 3 разных дистрибутивах Unix (AIX, Sun и HP).

Я видел некоторые технические спецификации, некоторые из которых даже имеют некоторые примеры реализации, но всегда возникает проблема с правильными случайными числами или они генерируют только UUID V1 или V3 и т.д. страница wikipedia для UUID указали мне на пару типовых библиотек, но это слишком тяжелый вес для того, что я пытаюсь выполнить здесь.

Я чувствую себя очень сильно, что могу сам что-то реализовать, но не хочу тратить время на изобретательство колеса, если есть что-то действительно простое и легкое, что я могу просто зайти. Кто-нибудь что-то знает или что-то знает?

Спасибо.

Ответ 1

CoCreateGuid является стандартным для всех форм Windows. Стандарт Linux libuuid, который является стандартным для всех версий Linux и должен быть легким. Я не знаю ни одной библиотеки, которая будет работать как для Windows, так и для Unix. Я думаю, что ветвь #if для Windows и Linux действительно подходит здесь.

Ответ 2

Фактически CoCreateGuid() вызывает UuidCreate(). Сгенерированные типы данных (UUID, GUID) являются точно такими же. В Windows вы можете использовать обе функции для создания GUID