was ist der Wertebereich der thread und Prozess-id?

fork und pthread_create gibt eine Prozess-id oder thread-id.

Aber ich weiß nicht, der Wertebereich dieser ids.

Nun möchte ich eine lookup-Tabelle, in der jedem Eintrag gibt es ein Element/Feld für die thread-id.
die Struktur jeder Eintrag ist wie:

 typedef struct {
   int seq;
   pthread_t tid;
   ...
 } entry_t;

Möchte ich einen Wert zuweisen, der auf eine ungültige tid zu einem Eintrag, wenn ich nicht bekommen, die tid von einem thread(bald ist dieses Feld gefüllt mit einer gültigen, aber vor, dass die fill Funktion wird geprüft, ob die pid ist gültig oder nicht). also, was ist der Wertebereich der thread und Prozess-id?

  • pthread_create() gibt 0 oder einen Fehler-Nummer; es wird der pthread_t Struktur übergeben wird, in der es über einen Zeiger, aber es gibt keine dokumentierte Struktur für die pthread_t geben. Die PIDs zurückgegeben fork() sind Varianten auf dem Thema int; Sie sind 32-bit-zahlen, die zwar alle 32-bits werden nur selten verwendet (aber mehr als 16 bit verwendet werden). Linux hat eine gettid() - Funktion zur Rückgabe eines thread-ID; der Rückgabetyp ist pid_t, das gleiche wie fork() und getpid(). Es ist nicht eine standard-Funktion (und wurde Hinzugefügt, in-kernel 2.4.11 nach den docs bin ich auf der Suche an).
  • ist es möglich, dass tid = 0?
  • Bitte beachten Sie, dass der zurückgegebene Wert von gettid() (tid) hat nichts zu tun mit dem Wert des ersten Parameters durch einen erfolgreichen Aufruf von pthread_create().
InformationsquelleAutor misteryes | 2013-05-17
Schreibe einen Kommentar