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が返されます。詳細については、マニュアルページを確認してください...ストーリーの終わり
Edit1:
これは、上記のコードで使用されている構造体名cur_client()です。