c++ uuid生成法则

http://www.jb51.net/LINUXjishu/39614.html

CentOS #include <uuid/uuid.h> 找不到文件解决方法:

sudo yum install e2fsprogs-devel
sudo yum install uuid-devel
sudo yum install libuuid-devel

http://blog.csdn.net/iw1210/article/details/17300875

在Linux下编写生成GUID的程序,如下 guid.c 文件:

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

void uuid2string(const uuid_t uu, char* const str) // 把uuid转成字符串。
{
    int i;
    for(i=0;i<16;i++)
        sprintf(str+i*2, "%02X",uu[i]);
    return;
}

void main()
{
    int i;
    char buf[200];
    uuid_t uu;

uuid_generate(uu);

printf("{");
    for(i=0;i<15;i++)
        printf("%02X-",uu[i]);
    printf("%02X}\n",uu[15]);

uuid2string(uu, buf);
    printf("%s\n",buf);

return;
}

编译guid.c文件:

# gcc -o guid guid.c -luuid

如果在编译时出现错误“uuid/uuid.h: No such file or directory”,解决办法:安装 libuuid-devel 软件包。

如下直接用yum命令安装:

[[email protected]]# yum install libuuid-devel

时间: 2024-10-20 14:02:29

c++ uuid生成法则的相关文章

UUID 生成32位随机串

java通过jdk自带的UUID,生成32位的随机串 private static String generate_UUID() { UUID uuid=UUID.randomUUID(); String str = uuid.toString(); System.out.println("str: " + str); // bb01a3cd-987f-469d-9e0f-04dffa2d3278 return str.replace("-", "&quo

JAVA UUID 生成唯一标识

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want 需求 项目在设计表的时候,要处理并发多的一些数据,类似订单号不能重复,要保持唯一.原本以为来个时间戳,精确到毫秒应该不错了.后来觉得是错了,测试环境下很多一样的ID,不能达到唯一标识. UUID JDK API 是这么说的: "表示通用唯一标识符 (UUID) 的类. UUID 表示一个 128 位的值." 详细的说就是: "

【Python】 uuid生成唯一ID

uuid uuid是128位的全局唯一标识符(univeral unique identifier),通常用32位的一个字符串的形式来表现.有时也称guid(global unique identifier).python中自带了uuid模块来进行uuid的生成和管理工作.(具体从哪个版本开始有的不清楚..) python中的uuid模块基于信息如MAC地址.时间戳.命名空间.随机数.伪随机数来uuid.具体方法有如下几个: uuid.uuid1() 基于MAC地址,时间戳,随机数来生成唯一的u

JAVA UUID 生成

UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成UUID的API.UUID按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可能的数字.由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结

java-实体类 uuid 注解配置 及使用uuid生成id的方法

1 // 发现资产主键 2 @Id 3 @GeneratedValue(generator="system-uuid") 4 @GenericGenerator(name="system-uuid",strategy="uuid") 5 private Long id; GUID是一个128位长的数字,一般用16进制表示.算法的核心思想是结合机器的网卡.当地时间.一个随即数来生成GUID.从理论上讲,如果一台机器每秒产生10000000个GUID

C# 使用UUID生成各种模式方法

UUID简单说明 常见的方式.可以利用数据库也可以利用程序生成,一般来说全球唯一. 优点: 1)简单,代码方便. 2)生成ID性能非常好,基本不会有性能问题. 3)全球唯一,在遇见数据迁移,系统数据合并,或者数据库变更等情况下,可以从容应对. 缺点: 1)没有排序,无法保证趋势递增. 2)UUID往往是使用字符串存储,查询的效率比较低. 3)存储空间比较大,如果是海量数据库,就需要考虑存储量的问题. 4)传输数据量大 5)不可读. var uuid = Guid.NewGuid().ToStri

短uuid生成

UUID UUID是128位的全局唯一标识符,通常由32字节的字符串表示.它可以保证时间和空间的唯一性,python中称为UUID,其他语言中可能称为GUID. 它通过MAC地址.时间戳.命名空间.随机数.伪随机数来保证生成ID的唯一性. UUID主要有五个算法,也就是五种方法来实现: uuid1()--基于时间戳.由MAC地址.当前时间戳.随机数生成.可以保证全球范围内的唯一性,但MAC的使用同时带来安全性问题,局域网中可以使用IP来代替MAC. uuid2()--基于分布式计算.环境DCE(

使用uuid生成随机数、等等

package test; import java.util.Random; import java.util.UUID; import java.util.concurrent.ThreadLocalRandom; public class Randomdemo { public static void main(String[] args) { /** * public Random()( 使用默认的种子 一当前系统时间作为种子 * public Random(long seed)根据指定种

利用uuid生成8位随机数

public static void test(){ String[] chars = new String[] {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", &q