gpt4 book ai didi

c - 如何从字符串重建原始 BLOB 值?

转载 作者:行者123 更新时间:2023-11-30 20:38:48 25 4
gpt4 key购买 nike

这是一个将 BLOB 转换为字符串的函数(例如 X'1234')

static void output_hex_blob(FILE *out, const void *pBlob, int nBlob){
int i;
char *zBlob = (char *)pBlob;
fprintf(out,"X'");
for(i=0; i<nBlob; i++){ fprintf(out,"%02x",zBlob[i]&0xff); }
fprintf(out,"'");
}

如何从字符串表示形式重建 BLOB 值?谢谢!

最佳答案

尝试使用此功能

void *
blobToBytes(FILE *input)
{
unsigned char *data;
char byte[3];
unsigned int size;
unsigned int index;

if (input == NULL)
return NULL;
fseek(input, 0L, SEEK_END);
size = ftell(input);
rewind(input);

byte[2] = '\0';
if ((size - 3) % 2 != 0)
return NULL;

if ((fread(&byte, 1, 2, input) != 2) || (memcmp(byte, "X'", 2) != 0))
return NULL;

data = malloc((size - 3) / 2);
if (data == NULL)
return NULL;

index = 0;
while (fread(&byte, 1, 2, input) == 2)
data[index++] = (unsigned char)strtol(byte, NULL, 16);

return data;
}

关于c - 如何从字符串重建原始 BLOB 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28115519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com