GNU/Linux >> Tutoriels Linux >  >> Linux

Existe-t-il un identifiant pthread_t invalide ?

Comme suggéré par Tony, vous pouvez utiliser pthread_self() dans cette situation.

Mais ne le faites pas comparer thread_t s en utilisant == ou != . Utilisez pthread_equal .

Depuis le pthread_self page de manuel :

Par conséquent, les variables de type pthread_t ne peuvent pas être comparées de manière portable à l'aide de l'opérateur d'égalité C (==) ; utilisez pthread_equal(3) à la place.


Votre hypothèse est incorrecte pour commencer. Les objets pthread_t sont opaques. Vous ne pouvez pas comparer les types pthread_t directement en C. Vous devez utiliser pthread_equal à la place.

Une autre considération est que si pthread_create échoue, le contenu de votre pthread_t sera indéfini. Il ne peut plus être défini sur votre valeur invalide.

Ma préférence est de conserver les valeurs de retour des appels pthread_create (avec les ID de thread) et de les utiliser pour déterminer si chaque thread a été démarré correctement.


Linux
  1. Suppression de fichiers par âge ?

  2. Existe-t-il STDCALL sous Linux ?

  3. décoder base64 :entrée invalide

  4. Existe-t-il un moyen de copier du texte dans htop?

  5. Existe-t-il un équivalent de cd - pour cp ou mv ?

5 meilleurs thèmes Linux Conky

Existe-t-il un client OneDrive pour Linux ?

Existe-t-il une instruction goto dans bash?

Données compressées non valides--format violé ?

Existe-t-il un moyen de redémarrer les badblocks ?

Existe-t-il un moyen d'écouter le processus ?