码迷,mamicode.com
首页 > 系统相关 > 详细

linux c 生成uuid

时间:2014-09-23 02:16:13      阅读:408      评论:0      收藏:0      [点我收藏+]

标签:blog   io   ar   for   div   sp   on   c   log   

#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$ 

  

linux c 生成uuid

标签:blog   io   ar   for   div   sp   on   c   log   

原文地址:http://www.cnblogs.com/Daniel-G/p/3987320.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!