GNU/Linux >> Linux の 問題 >  >> Linux

無効な pthread_t ID はありますか?

トニーが提案したように、 pthread_self() を使用できます

しかし、しない thread_t を比較 == を使用する または != . pthread_equal を使用 .

pthread_self から マニュアルページ:

<ブロック引用>

したがって、pthread_t 型の変数は、C の等値演算子 (==) を使用して移植可能な形で比較することはできません。代わりに pthread_equal(3) を使用してください。


あなたの仮定はそもそも間違っています。 pthread_t オブジェクトは不透明です。 C では pthread_t 型を直接比較することはできません。代わりに pthread_equal を使用する必要があります。

もう 1 つの考慮事項は、pthread_create が失敗した場合、pthread_t の内容が未定義になることです。もう無効な値に設定されていない可能性があります。

私の好みは、pthread_create 呼び出しの戻り値を (スレッド ID と共に) 保持し、それを使用して各スレッドが正しく開始されたかどうかを判断することです。


Linux
  1. 年齢別にファイルを削除しますか?

  2. .bashrcはどこにありますか?

  3. pthread_t を出力する方法

  1. 列ごとに「ユニーク」にする方法はありますか?

  2. iptables への Python インターフェイスはありますか?

  3. 「git sed」または同等のものはありますか?

  1. bashにgotoステートメントはありますか?

  2. 無効な圧縮データ -- 形式に違反していますか?

  3. プロセスを聞く方法はありますか?