struct s_client *cur_client(void){
return (struct s_client *) pthread_getspecific(getclient);
}
int32_t chk_process (int32_t) {
...
struct s_client *ptr = cur_client();
//FIXME
// how could i check in this line , just when the value of
// ptr is not zero , then it goes to it's next line?`
send_data (ptr, index);
...
...
}
我想检查一下,只有在 ptr 的值不为零时,它才会转到下一行,我尝试了这行代码
if (*ptr != 0)
但正如预期的那样,这是不正确的,因为它不是检查值!
Edit2:嗯,我自己找到了原因,因为 ptr 从 pthread_getspecific 填充。如果在其线程特定数据被破坏的键上调用 pthread_getspecific,则返回值 NULL。有关更多信息,您可以查看手册页...故事结束
编辑1:
好吧,这是结构名称 cur_client() ,在上面的代码中使用