GNU/Linux >> Znalost Linux >  >> Linux

Existuje neplatné id pthread_t?

Jak navrhl Tony, můžete použít pthread_self() v této situaci.

Ale ne porovnejte thread_t s pomocí == nebo != . Použijte pthread_equal .

Z pthread_self manuálová stránka:

Proto proměnné typu pthread_t nelze přenositelně porovnávat pomocí operátoru rovnosti C (==); místo toho použijte pthread_equal(3).


Tvůj předpoklad je pro začátek nesprávný. Objekty pthread_t jsou neprůhledné. Typy pthread_t nelze porovnávat přímo v C. Místo toho byste měli použít pthread_equal.

Dalším aspektem je, že pokud pthread_create selže, obsah vašeho pthread_t bude nedefinovaný. Nemusí již být nastavena na vaši neplatnou hodnotu.

Moje preference je zachovat návratové hodnoty volání pthread_create (spolu s ID vláken) a použít je k určení, zda bylo každé vlákno spuštěno správně.


Linux
  1. Mazání souborů podle věku?

  2. Kde je .bashrc?

  3. Existuje STDCALL v Linuxu?

  1. Existuje rozhraní pythonu pro iptables?

  2. Existuje 'git sed' nebo ekvivalent?

  3. Existuje příkaz goto v bash?

  1. dekódovat base64:neplatný vstup

  2. Existuje způsob, jak zkopírovat text v htop?

  3. Existuje způsob, jak naslouchat procesu?