Простое создание 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