使用哪个UUID库?

4

我正在使用GNOME技术编写GUI应用程序,并且需要为RDF文件中的资源定义UUID。

我使用C++编写,但我不介意使用C库并将其包装在自己的C++包装器中。我还更喜欢使用现有的常用库,而不是添加对第三方库的依赖。

我发现了两个库,似乎都是标准的,一个是libuuid(作为util-linux的一部分随Linux内核一起提供),另一个是OSSP uuid库,它具有C++绑定。

我的系统上没有任何程序使用OSSP uuid库,但整个桌面环境都依赖于libuuid软件包,可能是因为内核本身依赖于它。

问题是,我应该使用哪一个?有区别吗?还是我可以随机选择?我不知道为什么会有不同的实现,但我想选择一个并坚持使用它。


1
可能是UUID库的重复问题吗? - ptomato
2个回答

4
如果你正在使用Linux系统,最好的选择可能是使用libuuid库。我的意思是,每个人都在使用它,而且它是一个非常好的库。
你将需要依赖于所选的库,并且很可能libuuid已经存在于用户的系统中。你注意到你的系统上没有任何程序使用OSSP,对于我所有的系统也是如此。那么,既然已经有一个被大家使用并且运行良好的流行库,为什么还要使用一些……我们称之为第三方库……呢?(我并不是说OSSP不好,它也相当不错)
我不知道为什么要优先选择OSSP uuid而不是libuuid。
嗯,我应该指出,你可以直接从/proc/sys/kernel/random/uuid读取UUID,但这并不像使用C库那么有趣,对吧?

1
我了解到libuuid不易移植,因此在非Linux内核的情况下可能会遇到问题... - cfa45ca55111016ee9269f0a52e771
1
据我所知,这是正确的,而且OSSP在FreeBSD世界中更受欢迎。 - kirelagin

0

使用libuuid吧,它的应用范围更广,而且在出现问题时更容易获得反馈和查找文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接