uuid.c

来自「linux下自动mount各种即插即用设备的一个小程序源码 文件包含内容: 」· C语言 代码 · 共 56 行

C
56
字号
/* *************************UNUSED NOW*******************************/#include "uuid.h"int uuid_get(void* buf, UUID* uuid) {	U8* from = buf;	char string[37];	int i, c, variant, version;	memset(string, 0, 37);	uuid->uuid = 0;	uuid->type = NULL;	uuid->version = 0;	if (memcmp(buf, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) == 0) {		uuid->string = "nil";		return -1;	}	variant = from[8] >> 5;	version = from[6] >> 4;	for (i = 0; i < 16; i++) {		c = *from++;		*string++ = "0123456789ABCDEF"[c >> 4];		*string++ = "0123456789ABCDEF"[c & 15];		if (i == 3 || i == 5 || i == 7 || i == 9)			*string++ = '-';	}	if ((variant & 4) == 0) {         /* 0 x x */		uuid->type = "NCS";	} else if ((variant & 2) == 0) {  /* 1 0 x */		uuid->type = "DCE";		uuid->version = version;	} else if ((variant & 1) == 0) {  /* 1 1 0 */		uuid->type = "MS GUID";	} else {                          /* 1 1 1 */		uuid->type = "(Reserved)";	}	memcpy(uuid->uuid, buf, 16);	uuid->string = strdup(string);	return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?