Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用hiredis. hiredis有api:
hiredis
void* redisCommand(redisContext *c, char *format, ...)
如果格式是包含 '\0' 的 ac 字符串,则格式被截断。如何解决这个问题?
使用二进制安全命令:
redisCommand("set %b %b", key, keyLen, value, valueLen);
C 和 C++ 是不同的语言。
在 C 中,根据定义,字符串是连续的非空字符序列,后跟并包括空字符终止符。其他任何东西都不是字符串。
如果您使用的函数仅接受 C 字符串,则其他任何内容均无效,这将是设计决策,而不是需要“修复”的“错误”。如果您可以使用hiredis的源代码,您可能可以通过检查该源代码获得更多见解。