如何在Linux下生成系统范围的唯一ID

时间:2012-03-07 18:01:41

标签: linux unique

我正在研究多进程Linux系统,需要生成唯一的ID。安全性不是一个考虑因素,所以从零开始并计数的ID生成器就可以了。它也只是在本地机器内,不涉及网络。显然,实现这一点并不难,但我只是想知道是否有任何已提供的东西(最好是轻量级的)。

4 个答案:

答案 0 :(得分:18)

这听起来像是...... uuidgen

的工作
% uuidgen 
975DA04B-9A5A-4816-8780-C051E37D1414

如果您想将其构建到自己的应用程序或服务中,则需要libuuid

#include <uuid/uuid.h>
#include <iostream>

int main()
{
    uuid_t uu;
    uuid_generate(uu);
    char uuid[37];
    uuid_unparse(uu, uuid);
    std::cout << uuid << std::endl;
}

答案 1 :(得分:1)

有一个名为uuid的命令行工具可以完全按照您的意愿执行。我不确定它是否默认安装在各种发行版中,所以你可能必须自己这样做。

答案 2 :(得分:1)

如果未安装 uuidgen ,则可以使用 mktemp 。例如,对于16个字符(应该足以获得系统范围内的唯一ID)...

  

mktemp -u XXXXXXXXXXXXXXXX

答案 3 :(得分:0)

也很有用..

 cat /etc/machine-id

/ etc / machine-id文件包含安装期间设置的本地系统的唯一计算机ID。计算机ID是一个以换行符结尾的十六进制,32个字符的小写机器ID字符串。从十六进制解码时,这对应于一个16字节/ 128位字符串。

相关问题