首页 > 代码库 > linux c 生成uuid

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\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.cdaniel@debian:~/src$ ./a.out guid = a397a255-53be-41fc-996b-521413e9e22dguid = 518e1f56-0857-49a7-a5d0-528277751b99guid = 4aed583d-6a52-49d5-b668-8ead955f3c35guid = b5c48cdd-6c11-453d-91b4-59cfce233d27daniel@debian:~/src$ 

  

linux c 生成uuid