UUID生成方法总结
2016-03-30 16:06
591 查看
UID简介
摘自维基百科
通用唯一识别码(英语:Universally Unique Identifier,简称UUID)是一种软件建构的标准,亦为自由软件基金会组织在分散式计算环境领域的一部份。
UUID的目的,是让分散式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。目前最广泛应用的UUID,是微软公司的全局唯一标识符(GUID),而其他重要的应用,则有Linux ext2/ext3文件系统、LUKS加密分区、GNOME、KDE、Mac
OS X等等。另外我们也可以在e2fsprogs包中的UUID库找到实现。
搜集了一些UUID的生成方法,整理如下
Unix/Linux环境中大都有一个名为uuidgen的小工具,运行即可生成一个UUID到标准输出
读取文件
libuuid是一个用于生成UUID的C库,具体用法参考http://linux.die.net/man/3/libuuid,示例如下:
在Linux下编译时需要链接uuid库
在Ubuntu中,可以用下面的命令安装libuuid:
Boost库是一个可移植的开源C++库,它提供了UUID的实现。
下面的代码可以生成一个UUID
Qt是一个跨平台的C++编程框架,QUuid类实现了UUID的生成、比较、转换等功能。
函数
Windows下提供了函数CoCreateGuid用于生成GUID。需要使用的头文件是”objbase.h”,需要链接的库是ole32.lib,函数原型为:
GUID的原型为
JDK 1.5以上支持UUID,用法如下:
摘自维基百科
通用唯一识别码(英语:Universally Unique Identifier,简称UUID)是一种软件建构的标准,亦为自由软件基金会组织在分散式计算环境领域的一部份。
UUID的目的,是让分散式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。目前最广泛应用的UUID,是微软公司的全局唯一标识符(GUID),而其他重要的应用,则有Linux ext2/ext3文件系统、LUKS加密分区、GNOME、KDE、Mac
OS X等等。另外我们也可以在e2fsprogs包中的UUID库找到实现。
生成方法
搜集了一些UUID的生成方法,整理如下
Shell
Unix/Linux环境中大都有一个名为uuidgen的小工具,运行即可生成一个UUID到标准输出读取文件
/proc/sys/kernel/random/uuid即得UUID,例如:
cat /proc/sys/kernel/random/uuid
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
boost uuid
Boost库是一个可移植的开源C++库,它提供了UUID的实现。下面的代码可以生成一个UUID
#include <boost/uuid/uuid.hpp> #include <boost/uuid/uuid_generators.hpp> boost::uuids::uuid a_uuid = boost::uuids::random_generator();
Qt QUuid
Qt是一个跨平台的C++编程框架,QUuid类实现了UUID的生成、比较、转换等功能。函数
QUuid createUuid();可用于生成一个随即UUID。示例如下:
#include <iostream> #include <QUuid> #include <QString> int main() { QUuid uuid = QUuid::createUuid(); std::cout << qPrintable(uuid.toString()) << std::endl; return 0; }
CoCreateGuid
Windows下提供了函数CoCreateGuid用于生成GUID。需要使用的头文件是”objbase.h”,需要链接的库是ole32.lib,函数原型为:HRESULT CoCreateGuid(GUID *pguid);
GUID的原型为
typedef struct _GUID { DWORD Data1; WORD Data2; WORD Data3; BYTE Data4[8]; } GUID;
Java
JDK 1.5以上支持UUID,用法如下:import java.util.UUID; String uuid = UUID.randomUUID().toString();
相关文章推荐
- UIview需要知道的一些事情:setNeedsDisplay、setNeedsLayout
- Android UI设计——EditText
- HBase源码分析之KeyValue
- QSqlQuery的使用
- Android RoboGuice 使用指南
- 对于requirejs AMD模块加载的理解
- JFinal教程JfinalUIB 代码笔记 (9)--- JFinal分页存在的问题
- Android 之200款UI效果
- UIBarButtonSystemItem样式一览
- druid报异常 “sql injection violation, part alway true condition not allow”的解决方案
- not unique tables/alias:'t_cms_queen'
- 【iOS开发新手上路】教你一步一步创建一个功能齐全的UITableViewController(上)
- iOS中UITableView的UITableViewStyleGrouped组间距
- 放肆地使用UIBezierPath和CAShapeLayer画各种图形
- GPUImage
- MySQL query_cache_type 详解
- lightoj 1126 - Building Twin Towers DP
- easy ui 隐藏textbox
- Longest Increasing Subsequence
- 利用KVO实现 UITextView 通过代码方式设置内容后,自动滚动到最后一行