gpt4 book ai didi

redis - 为什么从redis获取字符串,会漏掉空格

转载 作者:IT王子 更新时间:2023-10-29 06:10:07 30 4
gpt4 key购买 nike

例如:
我通过命令获取字符串,有一个空格\x00
127.0.0.1:6379> get "87102213_87102208"
"173275,3915125,10,\x00"

但是在打印日志的代码中,空格被遗漏了。你知道为什么吗?

log_error("reply->str:%s,reply->len:%d",reply->str,reply->len);<br/>
reply->str:173275,3915125,10,,reply->len:19

最佳答案

嗯\x00 不是空格,这是一个空字符,在 C 中它也恰好是字符串终止符。大多数使用字符串作为参数的 C API 都会认为字符串在第一个\x00 字符处停止。这可能包括这个 log_error 函数。

但是,Redis 是二进制安全的,所有字符都有意义,包括 nul 字符。插入此值后,可能大小有误,因此也存储了终止字符串的 nul 字符。

关于redis - 为什么从redis获取字符串,会漏掉空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24948139/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com