Est-il valable pour plusieurs gestionnaires de signaux pour un même signal?
J'ai deux bibliothèques partagées lié à mon test de l'application. Les deux bibliothèques ont les gestionnaires de signaux pour SIGINT
.
Est-il valable pour plusieurs gestionnaires de signaux pour un même signal? L'ordre suivant lequel les gestionnaires d'exécuter lorsque je créer un SIGINT
signal?
OriginalL'auteur Lunar Mushrooms | 2013-06-14
Vous devez vous connecter pour publier un commentaire.
Comme dit par d'autres, seulement un gestionnaire de signal peut être défini, qui est le dernier. Il vous faudra alors gérer appelant les deux fonctions vous-même. Le
sigaction
fonction peut renvoyer précédemment installé gestionnaire de signal qui vous pouvez appeler vous-même.Quelque chose comme ceci (code non testé):
return;
dansif (lib1_sighandler)
bloc?non, pourquoi? Nous devons appeler les gestionnaires. Le
if
seul fait que les pointeurs ne sont pas NULL. Juste au cas où, puisque vous ne voulez pas de crash à l'intérieur d'un gestionnaire de signal.OriginalL'auteur Shahbaz
Seulement un gestionnaire de signal peut être installé par du signal. Seule la dernière installé gestionnaire sera active.
OriginalL'auteur Bryan Olivier
nous pouvons gérer de multiples signal avec un seul gestionnaire de signal, mais
mais il n'est pas possible d'avoir de multiples gestionnaire de signal pour un même signal.
si u essayez d'exécuter ce code u trouverez que la dernière gestionnaire de signal est défini pour ce signal.
je pense qu'il n'est pas possible d'avoir un multiple gestionnaire de signal pour un même signal.
OriginalL'auteur Kushagra Jaiswal
Comme vous avez pu le voir dans la page de man pour sigaction, le nouveau gestionnaire de signal pour remplacer l'ancien et le vieux est retourné.
Si vous avez deux inutilisés signaux (dire
SIGUSR1
etSIGUSR2
), l'attribution de ces signaux, les deux gestionnaires de signaux pourSIGINT
. Ensuite, vous pouvez écrire votre propre Gestionnaire de Signal pourSIGINT
et à partir de cela, vous pouvez augmenter le besoin inutilisé signal selon vous le souhaitez.OriginalL'auteur raj raj
Shabaz frappé le clou sur la tête. Cependant, si vous cherchez quelque chose de vos bibliothèques pourraient utiliser (à condition d'avoir accès au code source), vous pouvez faire quelque chose le long des lignes suivantes:
Ou, vous pouvez utiliser vous-même, et après le chargement de chaque bibliothèque, obtenir le gestionnaire et, plus tard, appel add_handler. Quelque chose le long des lignes de:
Juste quelques pensées,
Anthony
OriginalL'auteur Borgboy