方法一:随机生成

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*** Create random UUID** @param buf - buffer to be filled with the uuid string*/
char *random_uuid( char buf[37] )
{const char *c = "89ab";char *p = buf;int n;for( n = 0; n < 16; ++n ){int b = rand()%255;switch( n ){case 6:sprintf(p, "4%x", b%15 );break;case 8:sprintf(p, "%c%x", c[rand()%strlen(c)], b%15 );break;default:sprintf(p, "%02x", b);break;}p += 2;switch( n ){case 3:case 5:case 7:case 9:*p++ = '-';break;}}*p = 0;return buf;
}void main()
{char guid[37];random_uuid(guid);printf("guid = %s\n", guid);random_uuid(guid);printf("guid = %s\n", guid);random_uuid(guid);printf("guid = %s\n", guid);random_uuid(guid);printf("guid = %s\n", guid);
}

运行如下:

daniel@debian:~/src$ gcc getuuid.c
daniel@debian:~/src$ ./a.out
guid = a397a255-53be-41fc-996b-521413e9e22d
guid = 518e1f56-0857-49a7-a5d0-528277751b99
guid = 4aed583d-6a52-49d5-b668-8ead955f3c35
guid = b5c48cdd-6c11-453d-91b4-59cfce233d27
daniel@debian:~/src$

方法二:使用 libuuid 库生成

/*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;
}

在Linux下编译时需要链接uuid

gcc -o uuid uuid.c -luuid

在Ubuntu中,可以用下面的命令安装libuuid:

sudo apt-get install uuid-dev

linux c uuid guid 生成相关推荐

  1. UUID/GUID介绍、生成规则及生成代码

    UUID/GUID介绍.生成规则及生成代码 1. UUID介绍 1.1 介绍 1.2 UUID优势 1.3 UUID劣势 2. UUID版本 2.1 版本1 - 基于时间的UUID 2.1.1优点 2 ...

  2. Linux中uuid是什么?UUID由几部分组成?

    uuid,全拼为:Universally UniqueIdentifier,中文名称为通用唯一识别码.其本质就是个标识符,主要目的是让分布式系统中的所有元素,都能有唯一的标识名称,永远不会重复,比较有 ...

  3. python获取机器唯一标识_python中uuid来生成机器唯一标识

    摘要: 我们可以使用uuid1的后16位来标识一个机器. # use machine specific uuid, last 16 char will be the same if machine i ...

  4. Python 标准库 —— uuid(生成唯一 ID)

    有时我们在百度贴吧,在一个网站,保存网页上的一些图片时,图片名有时会是一串很长的数字和字母组成的,但无一例外,图像之间不会出现重名.这个唯一的 id,一般通过 uuid 的方式获得,uuid 根据的是 ...

  5. python namespace unique_Python使用uuid库生成唯一标识ID

    uuid是128位的全局唯一标识符(univeral unique identifier),通常用32位的一个字符串的形式来表现.有时也称guid(global unique identifier). ...

  6. PHP Guid生成

    目录 PHP GUID 生成 GUID 介绍 GUID性质 生成GUID 1. 长度36位包含 - 2. 长度32位不包含 PHP GUID 生成 GUID 介绍 GUID:Globally Uniq ...

  7. C# 中GUID生成格式的四种格式

    在C#中GUID生成的四种格式 var uuid = Guid.NewGuid().ToString(); // 9af7f46a-ea52-4aa3-b8c3-9fd484c2af12var uui ...

  8. crt证书linux使用,linux下使用openssl生成https的crt和key证书

    x509证书一般会用到三类文,key,csr,crt Key 是私用密钥openssl格,通常是rsa算法. Csr 是证书请求文件,用于申请证书.在制作csr文件的时,必须使用自己的私钥来签署申,还 ...

  9. Linux真随机数的生成

    今天看<白帽子讲WEB安全>一书,看到笔者谈到Linux如何实现真随机数生成,感觉非常有用,记录下来 #include<iostream> using namespace st ...

最新文章

  1. .net中如何同步获取数据方式增加一样数据自动刷新列表_期待已久的动态数据库工具终于来了!...
  2. js 获取URL后面的参数
  3. mybatis 配置_MyBatis教程3:优化MyBatis配置文件中的配置
  4. 撰写科研海报(poster)的必看技巧
  5. 在IDEA中使用MyBatis Generator逆向工程生成代码
  6. 30天打造专业红客七
  7. Java进程CPU占用高导致的网页请求超时的故障排查
  8. IntelliJ IDEA 开启很慢,运行不流畅,大项目卡顿?一招配置解决!
  9. 高斯课堂数电讲义笔记_《高数上》讲义笔记【高斯课堂】 (1).pdf
  10. 【新年礼物】分享十个珍藏学习编程的网站,助大家2022如虎添翼
  11. python处理图片文件,python 间接处理webp图片文件
  12. nodejs+vue+elementui+python酒店客房预订网站系统java
  13. 吴恩达-deep learning 02.改善深层神经网络:优化算法 (Optimization algorithms)Week2
  14. 原生js实现【longPressKey】长按键盘任意键(或组合键)3秒触发自定义事件(以Pause/Break键为例)
  15. 相量的瞬时功率 平均功率 无功功率 视在功率
  16. 襄阳寻古2-襄阳城墙,铁佛寺
  17. IIC输出模式选择推挽输出还是开漏输出?
  18. 名帖311 成亲王 行书《杜甫秋兴诗》
  19. 某计算机系统中有k台打印机,第三章复习题(2)
  20. mkfs:磁盘格式化

热门文章

  1. Octavia 创建 loadbalancer 的实现与分析
  2. Keil uVision5 下载程序 add flash programming algorithm选项缺少需要的下载算法的解决办法
  3. Silverlight实用窍门系列:47.Silverlight中元素到元素的绑定,以及ObservableCollection和List的使用区别...
  4. 苹果回应中情局攻击事件:许多漏洞已经得到解决
  5. POJ3982 序列
  6. 数组方法关于任意数字类型的数组求最大值解决办法
  7. ubuntu 10.04 常用 设置
  8. free命令输出详解
  9. IE遭破坏后的自我修复方法
  10. @ConfigurationProperties和@Value 注入