【C/C++类库】:uuid 通用唯一识别码

本文介绍了libuuid库的安装步骤及使用方法,并详细解析了uuid生成函数的不同类型及其应用场景,包括uuid_generate、uuid_generate_random、uuid_generate_time及uuid_generate_time_safe等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【SourceForge】libuuid下载
【CSDN】:libuuid下载安装

1、libuuid 下载安装
tar -xzvf libuuid-1.0.3.tar.gz
cd libuuid-1.0.3/
./configure
make
sudo make install
2、uuid 函数详解

uuid_generate():
优先算法:若有一高质量随机数生成器【/dev/urandom】,UUID将基于其生成的随机数产生
备用算法:上述条件不满足时,若可取到MAC地址,则将用由伪随机数生成器产生的随机数、当前时间、MAC地址生成UUID

uuid_generate_random():
强制完全使用随机数,优先使用高质量随机数生成器【/dev/urandom】,备用伪随机数生成器,用后者uuid有重复风险

uuid_generate_time():
使用全局时钟、MAC地址,有MAC地址泄露风险
为保证唯一性还使用时间同步机制,若机制不可用,多台机器上生成的uuid可能会重复

uuid_generate_time_safe():
指明由uuid_generate_time生成的uuid是否使用了时间同步机制

uuid_unparse():
将uuid以36字节的字符串表示,字符串尾添’\0’,转换后的字符串共占37字节

uuid_unparse_upper()、uuid_unparse_lower():
转换成相应的大小写字符串

3、uuid 使用
/*libuuid是一个用于生成UUID的C库,具体用法参考http://linux.die.net/man/3/libuuid,示例如下:*/
#include <stdio.h>
#include <uuid/uuid.h>

int main(int argc, char** argv)
{
    uuid_t uuid;
    char str[36];

    uuid_generate(uuid);
    uuid_unparse(uuid, str);

    printf("%s\n", str);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值