/********方法一**********/ <br>#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); } |
运行如下:
1
2
3
4
5
6
7
|
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$ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
/********方法二**********/ /*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 |