GNU/Linux >> Belajar Linux >  >> Linux

Apakah ada id pthread_t yang tidak valid?

Seperti yang disarankan oleh Tony, Anda dapat menggunakan pthread_self() dalam situasi ini.

Namun jangan bandingkan thread_t menggunakan == atau != . Gunakan pthread_equal .

Dari pthread_self halaman manual:

Oleh karena itu, variabel bertipe pthread_t tidak dapat dibandingkan dengan menggunakan operator kesetaraan C (==); gunakan pthread_equal(3) sebagai gantinya.


Asumsi Anda salah sejak awal. objek pthread_t buram. Anda tidak dapat membandingkan jenis pthread_t secara langsung di C. Sebagai gantinya, Anda harus menggunakan pthread_equal.

Pertimbangan lain adalah jika pthread_create gagal, konten pthread_t Anda tidak akan terdefinisi. Ini mungkin tidak disetel ke nilai Anda yang tidak valid lagi.

Preferensi saya adalah mempertahankan nilai pengembalian panggilan pthread_create (bersama dengan ID utas) dan menggunakannya untuk menentukan apakah setiap utas dimulai dengan benar.


Linux
  1. Di manakah lokasi .bashrc?

  2. Cara mencetak pthread_t

  3. Apakah ada cara untuk 'uniq' dengan kolom?

  1. Apakah ada STDCALL di Linux?

  2. Apakah ada antarmuka python ke iptables?

  3. decode base64:input tidak valid

  1. Menghapus File Berdasarkan Usia?

  2. Apakah ada cara untuk menyalin teks di htop?

  3. Apakah ada yang setara dengan cd - untuk cp atau mv?