c - strdup 错误 : 'Operation now in progress'

标签 c redis strdup

错误是什么意思?我只需要返回我从 redis 命令获得的值。

int getReply(char* result)
{
   redisContext *c;
   redisReply *reply;

   c = redisConnect((char*)"127.0.0.2", 6379);
   reply = redisCommand(c,"GET %s", "somekey");
   if (reply->str != NULL)
   {
       result = strdup(reply->str); 
       strerror(errno); // <-------- 'Operation now in progress'. result = null
   }

   freeReplyObject(reply);

   reply = redisCommand(c, "QUIT");
   printf("Disconnecting redis: %s\n", reply->str);

   freeReplyObject(reply);

   return 0;  
}

即使我用调试器慢慢地逐步完成它,也会发生这种情况(人们会假设任何阻塞操作都已经完成很久了)。 Redis 特定错误字符串为空,reply->str 具有我想要的正确字符串。

最佳答案

strdup 返回NULL 时出现错误。

我觉得你想要

       result = strdup(reply->str); 
       if (!result) strerror(errno);

关于c - strdup 错误 : 'Operation now in progress' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8228698/

相关文章:

python - 如何高效的向 Redis 插入 Billion 数据?

在 __GI____strdup() 中因 SIGSEGV 崩溃

c - 如何打印值列表?

node.js - 为什么在聊天应用程序中使用 redis?

c - 奇怪地无法理解使用 printf 的程序输出

node.js - Bull队列: When a job fails,如何停止队列处理剩余作业?

c - 我应该在 C 中的 basename/dirname 之后释放 strdup 指针吗?

c - strdup() 函数

c - 1[index]在c中是什么意思?

c - sscanf 获取被两个固定字符串包围的字符串段