2008-09-30 26 views
7

Mam kilka serwerów z tą aplikacją Linux. Chciałbym, aby mogli wygenerować identyfikator GUID z niskim prawdopodobieństwem kolizji. Jestem pewien, że mógłbym pobrać 128 bajtów z/dev/urandom i prawdopodobnie byłby w porządku, ale czy istnieje prosty prosty sposób na wygenerowanie identyfikatora GUID, który jest bardziej równoważny z Win32? Konkretnie, który uwzględnia przestrzeń (adres MAC, czas) i losowość? Nie chcę, aby odwołać pole do niej, po prostu chcę coś CreateGuid()GUIDy w C++ Linux GCC app

Odpowiedz

10

Ten numer identyfikacyjny UUID jest bardzo szczegółowy i użyłem podobnego podejścia z dużym sukcesem, kiedy potrzebowałem implementacji UUID i nie mogłem połączyć się z istniejącą biblioteką z powodów architektonicznych.

Ten article zapewnia dobry przegląd.

+3

Od patrząc na tego drugiego linku, znalazłem libuuid (http://linux.die.net/man/3/libuuid), która wydaje się być dokładnie tym, czego potrzebujesz. Dzięki! – twk

+0

Cieszę się, że mogłem pomóc. –

2

zajrzyj tutaj: GUID Behind the Scenes

PS: To jest nie duplikat pytania - najlepsza odpowiedź wskazywałaby na publicznie dostępne źródło.

2

Jeśli zamierzasz użyć czegoś, wtedy dobry byłby standard internetowy:
Sprawdź RFC (Request For Comment).

Jedno wiem, że jest to specyficzne dla GUID: RFC 4122

8

Jest libuuid.

+3

Byłoby wspaniale, gdyby istniała biblioteka inna niż LGPL (i nie-GPL). –

+2

@jeffamaphone: Dlaczego interesują Cię biblioteki LGPL podczas kierowania na Linux C++? Biblioteka standardowa C++ to LGPL. – Joshua