Bonjour,

Je travaille sous linux (ubuntu) et je cherche à créer une classe permettant d'accéder au données d'un port COM en c++.

J'ai donc créé ma classe mais lors de l'implémentation de la classe qui va traité les signaux j'ai un souci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 __sigset_t t;
    saio.sa_handler = Signal_handler_IO; //// PROBLEMES
    saio.sa_mask = t;
    saio.sa_flags = 0;
    saio.sa_restorer = NULL;
    sigaction(SIGIO,&saio,NULL);

Je voudrais faire en sorte que la fonction Signal_handler_IO soit friend de la classe pour pouvoir modifier ces arguments mais je n'y arrive pas.
Peut-on passer un argument au signal handler pour lui mettre la classe en argument?

J'ai vu que l'on pouvait utiliser à la place de sa_handler, sa_sigaction qui avait des arguments différents:

void (*sa_sigaction) (int, siginfo_t *, void *);

Est-ce que dans l'argument void * je peux passer ma classe?
J'ai essayé mais sans succés pour le moment...

Si quelqu'un à une idée pour résoudre mon problème.

D'avance merci.