GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gibt es eine ungültige pthread_t-ID?

Wie von Tony vorgeschlagen, können Sie pthread_self() verwenden in dieser Situation.

Aber nicht vergleiche thread_t s mit == oder != . Verwenden Sie pthread_equal .

Aus dem pthread_self Manpage:

Daher können Variablen vom Typ pthread_t nicht portabel mit dem C-Gleichheitsoperator (==) verglichen werden; Verwenden Sie stattdessen pthread_equal(3).


Ihre Annahme ist zunächst falsch. pthread_t-Objekte sind undurchsichtig. Sie können pthread_t-Typen nicht direkt in C vergleichen. Sie sollten stattdessen pthread_equal verwenden.

Eine weitere Überlegung ist, dass der Inhalt Ihres pthread_t undefiniert ist, wenn pthread_create fehlschlägt. Es darf nicht mehr auf Ihren ungültigen Wert gesetzt werden.

Ich bevorzuge es, die Rückgabewerte der pthread_create-Aufrufe (zusammen mit den Thread-IDs) beizubehalten und diese zu verwenden, um festzustellen, ob jeder Thread korrekt gestartet wurde.


Linux
  1. Dateien nach Alter löschen?

  2. Rekursives Mkdir?

  3. Grep:Ungültiger Inhalt von {}?

  4. Wo ist .bashrc?

  5. So drucken Sie pthread_t

Die 5 besten Conky-Designs für Linux

Gibt es einen OneDrive-Client für Linux?

Gibt es eine Python-Schnittstelle zu iptables?

Gibt es ein 'git sed' oder ein Äquivalent?

Gibt es eine goto-Anweisung in bash?

Gibt es eine Möglichkeit, Text in htop zu kopieren?