私はCを使用してtlv msgデータをエンコード/デコードしようとしています。実際はTLVフォーマットについての初心者です。私はちょうどGoogleからいくつかのコードを見つけたと私はそれらを理解していない。Cを使用して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(バッファ)とそのobliagtionを理解する必要があります。誰も私plsを助ける?
としてそれを与えたであろう10バイトのデータだったと仮定エンコード - デコード。しかし、これはBER TLVではない –