【发布时间】:2016-11-24 06:12:00
【问题描述】:
我正在尝试使用 C 对 tlv msg 数据进行编码/解码。实际上我是关于 TLV 格式的新手。我刚刚从谷歌找到了一些代码,我不明白它们。
unsigned char *tlv_buffer = NULL;
int size = 1;
int len = 0;
int result;
tlv_buffer = BKS_MALLOC(size);
result = append_bertlv_data(&tlv_buffer, &size, &len, 0xDF04, 2, "\x34\x56");
result = append_bertlv_data(&tlv_buffer, &size, &len, 0xDF81, 3, "ref");
append_bertlv_data:
int append_bertlv_data ( unsigned char ** buf_data, unsigned int buf_size,unsigned int * buf_len, unsigned int tag, unsigned int len, constunsigned char * value )
buf_data
作为输入,指向现有缓冲区的指针,BER-TLV 数据元素应附加到该缓冲区。作为输出,指向可能重新分配的缓冲区的指针。
buf_size
分配内存的大小。
buf_len
写入缓冲区的数据长度。
我只需要了解 buf_data(缓冲区)及其义务。有人帮帮我吗?
【问题讨论】:
-
也许这可以帮助你:codereview.stackexchange.com/questions/56203/…。但这不是 BER TLV