UUID-Bibliothek für C?
Ich bin auf der Suche nach einem UUID-Bibliothek für die Programmierung in C, dass eine angemessene Wahrscheinlichkeit besteht, installiert wird (oder zumindest installierbar durch das Paket-manager) auf den meisten modernen Linux-desktops, und arbeitet mit pkg-config
.
Den folgenden beiden Möglichkeiten scheinen die meisten auf der Hand:
Hat jemand Erfahrung mit diesen beiden und kann Sie empfehlen einen über den anderen, oder eine Dritte Möglichkeit?
InformationsquelleAutor der Frage ptomato | 2010-04-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich verwendet beide, und ich bevorzuge definitiv die util-linux-ng (ehemals in e2fsprogs). Für Portabilität, ich meine software unterstützen und autoconf/cmake-Makros zu erkennen, welche installiert ist.
Das Hauptproblem mit OSSP für mich ist, dass es Missbräuche Objektorientierung in C für keinen guten Grund. Eine UUID ist nur ein 128-bit-Zahl, die dargestellt werden kann und mit einem char[16] - array. Die UUID ist in der Regel verbunden mit einer anderen Struktur (die UUID dient als ein Schlüssel oder eine Kennung für eine solche Struktur), also sollte es gut, wenn man inline-array in der Struktur selbst.
Mit OSSP UUID ist, es gibt Ihnen eine
uuid_t*
Zeiger auf einen dynamisch reservierten Objekts, die hält mehr Stand, als nur die UUID-Wert. Wenn Sie die Arbeit mit Zehntausenden von Objekten, das vernünftig macht das Programm langsamer, verbraucht mehr Speicher und führt zu mehr Fragmentierung des Speichers. Am Ende, um OSSP UUID nutzbar, Sie müssen es nur verwenden, um zu generieren, die UUID (beinhaltet die 4-Aufrufe: uuid_create, uuid_make, uuid_export und uuid_destroy) und arbeiten mit dem UUID-Wert selbst. Mit util-linux-ng, es ist nur ein einziger Anruf: uuid_generate.InformationsquelleAutor der Antwort Juliano