GNU/Linux >> Linux Esercitazione >  >> Linux

C'è un id pthread_t non valido?

Come suggerito da Tony, puoi usare pthread_self() in questa situazione.

Ma non confronta thread_t usa == o != . Usa pthread_equal .

Dal pthread_self pagina man:

Pertanto, le variabili di tipo pthread_t non possono essere confrontate in modo portabile utilizzando l'operatore di uguaglianza C (==); usa invece pthread_equal(3).


La tua ipotesi non è corretta per cominciare. Gli oggetti pthread_t sono opachi. Non puoi confrontare i tipi pthread_t direttamente in C. Dovresti invece usare pthread_equal.

Un'altra considerazione è che se pthread_create fallisce, il contenuto del tuo pthread_t sarà indefinito. Potrebbe non essere più impostato sul tuo valore non valido.

La mia preferenza è mantenere i valori di ritorno delle chiamate pthread_create (insieme agli ID dei thread) e usarli per determinare se ogni thread è stato avviato correttamente.


Linux
  1. Eliminazione di file per età?

  2. Come stampare pthread_t

  3. C'è un modo per "uniq" per colonna?

  4. C'è un modo per riavviare i badblock?

  5. Esiste un equivalente di cd - per cp o mv?

5 migliori temi Linux Conky

Esiste un client OneDrive per Linux?

decodifica base64:input non valido

Dati compressi non validi:formato violato?

C'è un modo per copiare il testo in htop?

C'è un modo per ascoltare il processo?