Linux获取uuid_查看uuid的命令

2022-09-22 15:54:04 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

一、UUID 生成(源代码编译)

根据定义,UUID(Universally Unique IDentifier,也称GUID)在时间和空间都是唯一的。为保证空间的唯一性,每个UUID使用了一个48位的值来记录,一般是计算机的网卡地址。为保证时间上的唯一性,每个UUID具有一个60位的时间戳(timestamp)。这个时间戳表示自公元1582年(绝对不是1852,这是《COM技术内幕》,1999年3月第1版第89页中的一个错误)10月15号00:00:00:00以来的时间,是以100纳秒为单位的时间间隔。1纳秒(ns)=10-9秒(s)。UUID算法可以保证至大约公元3400年仍然唯一。UUID的C语言结构定义如下:

typedef struct _uuid_t { unsigned long data1; unsigned short data2; unsigned short data3; unsigned char data4[8]; } uuid_t; 它的结构大小为16个字节。即sizeof(uuid_t)==16为TRUE。写成16进制字符串的格式,一般为: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” 上面的字符串形式,占用36个字符,不包括结尾空字符’/0’。所以,要想容纳一个UUID字符串,必须声明为一个char[36 1]的字符数组。

#include <stdio.h> #include “uuid/uuid.h” int main(int argc, char **argv) { uuid_t uuid; char str[36 1]; uuid_generate(uuid); uuid_unparse(uuid, str); printf(“%sn”, str); return 0; }

在Linux下编译时需要链接uuid库

gcc –o uuid uuid.c –luuid

找不到库,安装库:

ubuntu下安装uuid链接库

sudo apt-get install uuid-dev

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169240.html原文链接:https://javaforall.cn

0 人点赞