zoukankan      html  css  js  c++  java
  • linux c 生成uuid

    /********方法一**********/
    #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 ", guid); random_uuid(guid); printf("guid = %s ", guid); random_uuid(guid); printf("guid = %s ", guid); random_uuid(guid); printf("guid = %s ", 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是一个用于生成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
    ", str);
    
        return 0;
    }
    在Linux下编译时需要链接uuid库
    
    gcc -o uuid uuid.c -luuid
    在Ubuntu中,可以用下面的命令安装libuuid:
    
    sudo apt-get install uuid-dev
  • 相关阅读:
    使用SWFUpload无刷新上传图片
    WP多语言
    C#将DataTable转化为List<T>
    Android 多语言
    Android开发 Failed to install *.apk on device 'emulator-5554': EOF
    ASP.NET MVC中将数据从Controller传递到视图
    安装和卸载程序时总是出现2502,2503错误代码的解决方法
    position固定菜单栏
    [position]返回顶部
    [css]后台管理系统布局
  • 原文地址:https://www.cnblogs.com/Daniel-G/p/3987320.html
Copyright © 2011-2022 走看看