当GNU C lib hsearch_r返回负int时有什么意义?

时间:2012-06-15 15:32:34

标签: c gnu

int status;
status=hsearch_r(wishFind,FIND,&(h->retElem),(h->htab));
print("Debug: status is %d\n",status);

结果显示状态为-8400
    但是wishFind不在h-> htab。

I think status need to be 0.
it's confused me that status is -8400.
Thanks!

1 个答案:

答案 0 :(得分:1)

来自manpage

  

hsearch_r()成功时返回非零值,错误时返回0。

这意味着它允许在成功时返回任何非零值,因此您需要满足:

if (status == 0) {
    // failure
} else {
    // success
}

如果您在哈希表中找不到,那么您遇到的问题与您向我们展示的代码完全不同。