php 生成uuid-Linux下安装和使用libuuid

2023-12-04 0 7,355 百度已收录

Linux下libuuid的安装和使用 一、UUID概述

UUID的含义是Universally Unique Identifier,它是软件构建的标准,也是开放软件基金会(Open Software Foundation,OSF)组织使用的分布式计算环境(DistributedComputingEnvironment,DCE)领域的一部分。

UUID是指在一台机器上生成的一个数字,保证在同一时间和空间的所有机器上都是唯一的。 一般来说,平台会提供生成的API。根据开放软件基金会(OSF)制定的标准进行估计,使用以太网卡地址、纳秒时间、芯片ID号和许多可能的数字。

UUID 是以下部分的组合: 1). 当前日期和时间。 UUID的第一部分与时间有关。 如果几秒后生成一个UUID,第一部分不同,其余部分相同。 2)、时钟顺序。 3)。 全球唯一的 IEEE 机器识别号。 如果有网卡,则从网卡的MAC地址获取。 如果没有网卡则通过其他方式获取。

UUID唯一的缺点是生成的结果字符串会比较长。 最常用的UUID标准是Google的GUID(GlobalsUniqueIdentifiers)。 在ColdFusion中php 生成uuid,您可以使用CreateUUID()函数轻松生成UUID。 其格式为:xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxx(8-4-4-16),其中每个x位是0-9a-f范围内的1。 十六的补数。 标准 UUID 格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)

2.Linux下安装libuuid库

第一种方法是在终端输入:sudoapt-getinstalluuid-dev,然后根据实践使用cmake进行编译。 cpp包含上午错误,找不到对应的函数; 但是使用g++模式就可以了,有点奇怪。

第二种是直接源码编译。 此时可以在系统/usr/local/include和/usr/local/lib中找到对应的头文件uuid.h和liuuid.so进行cmake编译。 具体编译步骤如下:

(1)下载源码压缩包:也可以到官网下载最新版本

(2)解压tar-xzvflibuuid-1.0.3.tar.gz,进入解压目录:终端输入./configure;make;makeinstall; 分三步完成安装。 安装完成后会提示安装在/usr/local/include和/usr/local/lib中; 连接后,就可以随意使用CMakeLists.txt了。

3.Linux下简单demo

(1)首先列出一些常用的函数,并将这些函数包含在uuid.h文件中;

    void uuid_generate(uuid_t out); //最常用
    void uuid_generate_random(uuid_t out);
    void uuid_generate_time(uuid_t out);
    int uuid_generate_time_safe(uuid_t out);
    //比较两个uuid
    int uuid_compare(uuid_t uu1, uuid_t uu2) 
    //拷贝src到dst
    void uuid_copy(uuid_t dst, uuid_t src);
    //清除uu内容(清零)
    void uuid_clear(uuid_t uu);
    //判读uu是否为null
    int uuid_is_null(uuid_t uu);
    //解析in指向的字符串形式内容到uu
    int uuid_parse( char *in, uuid_t uu);
    //将uu内容解析为字符串,保存到out数组
    void uuid_unparse(uuid_t uu, char *out);
    void uuid_unparse_upper(uuid_t uu, char *out);
    void uuid_unparse_lower(uuid_t uu, char *out);
    //将基于时间创建的uu在的时间部分解析出来
    time_t uuid_time(uuid_t uu, struct timeval *ret_tv)

(2) 编写一个uuiddemo.cpp测试

#include 
#include 
int main(){
    uuid_t uu;
    char buf[16];
    uuid_generate_random(uu);
    uuid_unparse(uu, buf);
    printf(“%s”,buf);
    return 0;
}

要运行,您可以终端 g++uuiddemo.cpp-luuid-odemo,然后运行 ​​./demo。 如果你想在项目中使用这个库并且需要cmake编译php 生成uuid,可以编译CMakeLists.txt:

cmake_minimum_required(VERSION 2.8)
project(uuidtest C CXX) 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
include_directories( /usr/local/include)
file(GLOB TEST_SRC ${CMAKE_CURRENT_LIST_DIR}/uuiddemo.cpp)
set(TEST_COMPILE_CODE ${TEST_SRC})
add_executable(cmakefirst ${TEST_COMPILE_CODE})
target_link_libraries(uuidtest /usr/local/lib/libuuid.so)

编译完成后,cd到CMakeLists.txt所在目录mkdirbuild,cd构建:输入以下命令

..

制作

经过一番操作,编译出可执行文件uuidtest,然后运行./uuidtest。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 php php 生成uuid-Linux下安装和使用libuuid https://www.wkzy.net/game/199610.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务