c - C的UUID库?

标签 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/

相关文章:

c - C编程中,要求L值是语义错误还是语法错误?

linux - 如何让我的 Golang Web 服务器在后台运行?

sql - 将自动增量 id 重构为 **SQL DB 中的 GUID

c++ - 为什么 g++ 不能编译一个简单的 GTK 程序?

c - 在 c mex s 函数中设置采样时间

c - C 程序中的字符串加法

linux - ls-ltr | grep "date | awk ' {print $ 2""$3 }'"不适用于个位数日

c++ - 如何分析静态/全局初始化?

algorithm - 如何生成每个种子字符串都相同的uuid?

php - laravel uuid 未在查询中显示