Ошибка команды клиента Redis

я использую hiredis, hiredis имеет API:

  void* redisCommand(redisContext *c, char *format, ...)

Если формат представляет собой строку c, содержащую ‘\ 0’, формат усекается. Как это исправить?

0

Решение

C и C ++ — это разные языки.

В С строка, по определению, представляет собой непрерывную последовательность ненулевых символов, за которыми следует терминатор с нулевым символом. Все остальное не является строкой.

Если вы используете функцию, которая принимает только строку C, ничто другое не является допустимым, и это будет решение по проекту, а не «ошибка», требующая «исправления». Если исходный код для hiredis доступен для вас, вы можете получить дополнительную информацию, изучив этот исходный код.

0

Другие решения

используйте двоичную безопасную команду:

redisCommand("set %b %b", key, keyLen, value, valueLen);
0

По вопросам рекламы [email protected]