标签: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$
标签:blog io ar for div sp on c log
原文地址:http://www.cnblogs.com/Daniel-G/p/3987320.html