【发布时间】:2015-04-26 11:40:18
【问题描述】:
我需要进行 RPC。我正在尝试编码函数名称的长度,后跟函数的名称。
Function name: say_hello
Function name length: 9
Encoded array: [9, 's', 'a', 'y', ..., 'l', 'l', 'o']
到目前为止:
unsigned char* encode_int(unsigned char *buffer, int value) {
buffer[0] = value >> 24;
buffer[1] = value >> 16;
buffer[2] = value >> 8;
buffer[3] = value;
return buffer + 4;
}
char* function_name = "say_hello";
char* buffer[256];
buffer = encode_int(&buffer, strlen(function_name));
strcpy(buffer, function, strlen(function_name));
puts(buffer);
【问题讨论】:
-
你有什么问题?
-
@atuos 我不能让它工作,你能提供一个如何正确做的例子吗?谢谢。
-
你怎么知道它不起作用?你希望 puts() 打印 '9say_hello' 吗?
-
看起来你有几个问题,你不应该在 Encode_int 的函数定义中使用 unsigned char。此外,当您调用它时,您使用 &buffer 而不是正确的缓冲区