<分区>
我正在寻找一个用于 C 语言编程的 UUID 库,它有合理的可能性在大多数现代 Linux 桌面上安装(或至少可由包管理器安装),并与 pkg-config一起使用
.
以下两种可能性似乎最为明显:
有没有人有这两个方面的经验,可以推荐一个而不是另一个,或者第三种可能性?
标签 c linux uuid pkg-config
<分区>
我正在寻找一个用于 C 语言编程的 UUID 库,它有合理的可能性在大多数现代 Linux 桌面上安装(或至少可由包管理器安装),并与 pkg-config一起使用
.
以下两种可能性似乎最为明显:
有没有人有这两个方面的经验,可以推荐一个而不是另一个,或者第三种可能性?
最佳答案
我都用过,而且我绝对更喜欢 util-linux-ng(以前在 e2fsprogs 中)。为了便携性,我让我的软件同时支持这两者,并使用 autoconf/cmake 宏来检测安装了哪一个。
对我来说,OSSP 的主要问题是它无缘无故地滥用了 C 中的面向对象。 UUID 只是一个 128 位数字,可以用 char[16] 数组表示。 UUID 通常与另一个结构相关联(UUID 用作此类结构的键或标识符),因此如果您可以将该数组内联到结构本身,那应该很好。
使用 OSSP UUID,它为您提供了一个指向动态分配对象的 uuid_t*
指针,该对象拥有比 UUID 值更多的状态。如果您处理数以万计的对象,这显然会使程序变慢,使用更多内存并导致更多内存碎片。最后,要使 OSSP UUID 可用,您必须仅使用它来生成 UUID(涉及 4 个调用:uuid_create、uuid_make、uuid_export 和 uuid_destroy)并自行处理 UUID 值。使用 util-linux-ng,只需一次调用:uuid_generate。
关于c - C的UUID库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2566964/