【问题标题】:UUID library for C? [closed]C的UUID库? [关闭]
【发布时间】:2011-02-03 17:58:44
【问题描述】:

我正在寻找一个用于 C 语言编程的 UUID 库,该库在大多数现代 Linux 桌面上安装(或至少可以由包管理器安装)的可能性是合理的,并且可以与 pkg-config 一起使用。

以下两种可能性似乎最明显:

有没有人有这两个方面的经验并且可以推荐一个而不是另一个,或者第三种可能性?

【问题讨论】:

标签: c linux uuid pkg-config


【解决方案1】:

我都用过,而且我绝对更喜欢 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。

【讨论】:

  • Juliano,您介意分享您用于此设置的特定 Autoconf 配置指令吗?目前我正在从头开始解决它,但作为一名 Autotools 新手,我会觉得依靠已经在野外成功使用的东西会更好。任何提示表示赞赏...
  • 也可以在OOP中传入数组。
猜你喜欢
  • 1970-01-01
  • 2011-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-30
  • 2012-04-07
  • 2010-09-18
  • 2010-11-14
相关资源
最近更新 更多