Je m'intéresse au traitement du signal et je me demandais si il était possible de donner à un signal l'utilisation d'une procédure, sous la forme :
void maProcedure(void)
car un
signal(SIGINT, maProcedure)
me donne comme erreur passing argument 2 of ‘signal’ from incompatible pointer type, ce qui est normal.
Pourtant, je pense qu'il est possible d'affecter à un signal autre chose qu'un void action(int) ?
Merci pour votre aide :)
# Traitement du signal
Posté par Duncan Idaho . Évalué à 6.
Ce que j'appelle "Traitement du signal" n'a pas grand chose à voir avec ce dont tu parles et, au passage, on dirait que ça n'a ni queue ni tête.
Des éclaircissements peut-être ?
[^] # Re: Traitement du signal
Posté par Animatrix . Évalué à 3.
AU lieu d'un msg sur le forum, j'ai fait un journal :(
[^] # Re: Traitement du signal
Posté par cosmocat . Évalué à 3.
le "traitement du signal" est un domaine à cheval entre la physique, l'électronique et l'informatique ( http://fr.wikipedia.org/wiki/Traitement_du_signal ).
Alors que là tu sembles nous parler des signal/slot de Qt....
[^] # Re: Traitement du signal
Posté par Uriel Corfa . Évalué à 2.
Pour ta question, je ne pense pas. Le mieux à faire étant de créer une fonction du genre :
void monGestionaireDeSignal_Wrapper(int)
{
monGestionnaireDeSignal();
}
et d'utiliser celle-ci.
Sinon, tu peux caster. Mais c'est très moche.
typedef void (*voidFPtr)(void);
signal(SIGINT, (voidFPtr)maProcedure);
[^] # Re: Traitement du signal
Posté par suJeSelS . Évalué à 3.
Sinon, un simple 'man signal' pourra probablement t'éclairer.
# signal est déprécié
Posté par Batchyx . Évalué à 4.
Et pourquoi utilise tu encore signal() qui est déprécié ? utilise sigaction() à la place ...
Ça résout sans doute pas ton problème ...
struct sigaction tonsig = { .sa_handler = taProcedure, .flags = 0 };
if (sigaction(SIGINT, &tonsig) < 0) au_secours();
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.