CでプログラミングするためのUUIDライブラリを探しています。これは、最新のLinuxデスクトップにインストールされる(または少なくともパッケージマネージャーによってインストール可能である)可能性が高く、で動作しpkg-configます。
次の2つの可能性が最も明白に思われます。
誰かがこれらの2つの経験があり、一方を他方よりも推奨できるか、または3番目の可能性がありますか?
私は両方を使用しましたが、util-linux-ng (以前は e2fsprogs にあったもの) の方が断然好きです。移植性のために、ソフトウェアは両方をサポートし、autoconf/cmake マクロを使用してどちらがインストールされているかを検出します。
私にとっての OSSP の主な問題は、正当な理由もなく C のオブジェクト指向を悪用していることです。UUID は単なる 128 ビットの数値であり、char[16] 配列で表すことができます。UUID は通常、別の構造に関連付けられているため (UUID はそのような構造のキーまたは識別子として機能します)、その配列を構造自体にインライン化できるとよいでしょう。
OSSP UUID をuuid_t*使用すると、動的に割り当てられたオブジェクトへのポインターが提供されます。このオブジェクトは、UUID 値だけでなく、より多くの状態を保持します。数万のオブジェクトを操作する場合、これによりプログラムが遅くなり、より多くのメモリが使用され、より多くのメモリの断片化が発生します。最後に、OSSP UUID を使用可能にするには、それを使用して UUID を生成し (uuid_create、uuid_make、uuid_export、uuid_destroy の 4 つの呼び出しが必要です)、自分で UUID 値を操作する必要があります。util-linux-ng では、uuid_generate を 1 回呼び出すだけです。