Exemple de sigaction

La fonction de gestion du signal en option BSD quatre arguments n`est pas supportée par ce volume de IEEE Std 1003. Le stockage occupé par sa_handler et sa_sigaction peut se chevaucher, et une application conforme ne doit pas utiliser les deux simultanément. Le comportement des fonctions réentrantes, tel que défini dans la DESCRIPTION, est tel que spécifié par ce volume de IEEE Std 1003. Habituellement, le signal est exécuté sur la pile qui était en vigueur avant le signal a été livré. Si longjmp () ou _ longjmp () est utilisé pour quitter le gestionnaire de signaux, le masque de signal doit être restauré explicitement. Si sigaction () échoue, aucun nouveau gestionnaire de signal n`est installé. Linux. Ce volume de IEEE Std 1003. Quelqu`un pourrait-il élaborer? Cette fonction reçoit le numéro de signal comme premier argument, un pointeur vers un siginfo_t comme deuxième argument et un pointeur vers un ucontext_t (cast en void *) comme troisième argument. En outre, le signal qui a déclenché le gestionnaire sera bloqué, sauf si l`indicateur SA_NODEFER est utilisé. En d`autres termes, si SIGKILL est inclus dans le champ d`action de sa_mask, il n`est pas spécifié si un appel ultérieur à l`approbation () retourne avec SIGKILL inclus dans le champ sa_mask de l`OACT.

Si SA_SIGINFO n`est pas défini dans sa_flags, la disposition des occurrences ultérieures de SIG lorsqu`elle est déjà en attente est définie par l`implémentation; la fonction de capture du signal est invoquée avec un seul argument. Il aide vraiment à lire un code écrit proprement comme ceci. Si SIG est SIGCHLD et que l`indicateur SA_NOCLDSTOP n`est pas défini dans sa_flags et que l`implémentation prend en charge le signal SIGCHLD, un signal SIGCHLD doit être généré pour le processus d`appel chaque fois qu`un de ses processus enfants s`arrête [XSI] et qu`un signal SIGCHLD peut être généré pour le processus d`appel chaque fois qu`un de ses processus enfants arrêtés sont poursuivis. Il n`est pas spécifié si une tentative de définition de l`action pour un signal qui ne peut pas être interceptée ou ignorée à SIG_DFL est ignorée ou provoque l`erreur renvoyée avec errno défini sur [EINVAL]. Linux, utilisé Eclipse pour programmer. Afin d`éviter les erreurs découlant de l`interruption des appels de fonction non réentrants, les applications doivent protéger les appels à ces fonctions en bloquant les signaux appropriés ou par l`utilisation de certains sémaphore programmatiques (voir semget (), sem_init (), sem_ ouvert (), etc.).

About the author: admin