error: ‘struct sigevent’ n’a pas de membre nommé ‘sigev_notify_thread_id’

Le code “jouet” suivant représente un problème que je rencontre dans une base de code plus grande utilisant des temporisateurs POSIX .

#include  #include  #include  #include  using namespace std; int main() { struct sigevent sevp; long threadId = 5; sevp.sigev_notify = SIGEV_THREAD_ID; sevp.sigev_notify_thread_id = threadId; return 0; } 

Lorsque j’essaie de le comstackr en utilisant g++ sur une machine Linux, j’obtiens l’erreur suivante:

 error: 'struct sigevent' has no member named 'sigev_notify_thread_id' 

Y a-t-il une raison pour laquelle? Cela m’amène à croire que la structure sigevent a un membre appelé sigev_notify_thread_id .

Changer sevp.sigev_notify_thread_id en sevp._sigev_un._tid résolu mon problème. Vous pouvez voir la définition sur la ligne 295 ici .

Merci à @Duck pour le commentaire utile.