我正在使用hiredis
。 hiredis
有api:
void* redisCommand(redisContext *c, char *format, ...)
如果格式为包含'\ 0'的c字符串,则格式将被截断。如何解决这个问题?
答案 0 :(得分:0)
C和C ++是不同的语言。
在C中, string ,根据定义,是一个非空字符的连续序列,后跟并包括一个空字符终止符。其他任何东西都不是字符串。
如果您使用的函数只接受C字符串,那么其他任何内容都无效,这将是一个设计决策,而不是一个"错误"要求"修复"。如果您可以使用 hiredis 的源代码,则可以通过检查源代码获得更多洞察。
答案 1 :(得分:0)
使用二进制安全命令:
redisCommand("set %b %b", key, keyLen, value, valueLen);