Biblioteka UUID dla C?

Szukam biblioteki UUID do programowania w języku C, która ma uzasadnione prawdopodobieństwo zainstalowania (lub przynajmniej zainstalowania przez menedżera pakietów)na większości nowoczesnych komputerów z Linuksem i współpracuje z pkg-config.

Następujące dwie możliwości wydają się najbardziej oczywiste:

Czy ktoś ma doświadczenie z tymi dwoma i może polecić jedną nad drugą, lub trzecią możliwą?

Author: ptomato, 2010-04-02

1 answers

Użyłem obu i zdecydowanie wolę util-linux-ng (dawniej w e2fsprogs). Jeśli chodzi o przenośność, moje oprogramowanie obsługuje oba i używam makr autoconf/cmake do wykrywania, który z nich jest zainstalowany.

Główny problem z OSSP dla mnie jest to, że nadużywa orientacji obiektowej w C bez powodu. UUID jest tylko 128-bitową liczbą, która może być reprezentowana za pomocą tablicy char[16]. UUID jest zwykle powiązany z inną strukturą (uuid służy jako klucz lub identyfikator dla takich struktura), więc powinno być dobrze, jeśli można wstawić tę tablicę w samej strukturze.

Z OSSP UUID, daje uuid_t* wskaźnik do dynamicznie przydzielanego obiektu, który posiada więcej stanu niż tylko wartość uuid. Jeśli pracujesz z dziesiątkami tysięcy obiektów, to rozsądnie sprawia, że program jest wolniejszy, zużywa więcej pamięci i powoduje większą fragmentację pamięci. W końcu, aby uuid OSSP był użyteczny, musisz go użyć tylko do wygenerowania UUID (co obejmuje 4 wywołania: uuid_create, uuid_make, uuid_export i uuid_destroy) i pracować z wartością UUID samodzielnie. W util-linux - ng jest to tylko jedno wywołanie: uuid_generate.

 18
Author: Juliano,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-05 01:18:21