Bonjour à tous ! (LINUX CODE - Fedora Core)
J'ai besoin de récupérer l'ID d'un thread, j'utilise donc pthread_self(), mais cette fonction me retourne un pthread_t ... J'ai beau le caster en ce que je veux, ce soit disant ID de thread est complétement pourri. L'ID qui m'interesse est celui qui est affiché lorsqu'on fait un ps systéme ...
J'ai reussi à recup cet ID en faisant une grosse bidouille, en gros j'ai un
typedef unsigned long int pthread_t;
J'ai dédui que ca pouvait être un pointeur et bingo !
Et la j'ai bien mon thread ID correct, je retrouve aussi le thread ID du pére un peu plus loin dans la mémoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 unsigned short lThreadID; memcpy(&lThreadID, (void*)(pthread_self()+72), sizeof(unsigned short));
J'en ai donc deduis que pthread_t qui est défini comme un unsigned long est en réalité un pointeur sur une struct, mais je tape direct dans la mémoire c crade, j'aimerai pouvoir caster mon unsigned long comme un pointeur sur cette struct mais je ne sais pas du tout de quelle struct il s'agit et je ne trouve AUCUNE info la dessus sur le net
A l'aide !
Partager