alors quelqu'un peut-il expliquer ce que cela est censé faire: Il s'agit d'une définition extraite de la bibliothèque de signaux standard. P> P>
4 Réponses :
La fonction et retourne: p> signal code> prend comme arguments: signal code> enregistre une fonction à appeler lorsque le signal se produit et renvoie le gestionnaire de fonctions précédent. P> p>
La page de l'homme rend cette déclaration plus facile à comprendre en introduisant un Typedef code> comme: sighandler_t code> est défini comme un pointeur à une fonction qui accepte un int code> et renvoie void code>. p> signal code> est une fonction qui accepte un int < / code> (numéro de signal) et un pointeur de fonction et renvoie un pointeur de fonction. p> p>
Fondamentalement, il permet de décider comment gérer un signal spécifique (identifié par argument Le vide La fonction int sig code>) envoyé à votre programme. P>
vide (* FUNC) (int) code> est un pointeur sur la fonction qui gérera le signal (vous pouvez fournir une ou utilisez un code personnalisé ou d'utiliser sig_dfl code> Sig_ign code> qui sont des actions par défaut pour le gérer normalement ou l'ignorer). P>
signal code> renvoie ensuite le pointeur sur le gestionnaire présent avant l'appel de cette fonction ou sig_err code> est une erreur survenue. Ceci peut être utilisé pour restaurer le gestionnaire par défaut ces derniers temps lorsque vous avez effectué un comportement personnalisé. P>
Démarrer avec le nom: aller à droite aussi loin que possible: p> Vous avez une liste de paramètres parenthèses, C'est donc une fonction prenant 2 paramètres: un Puis vous frappez un autre droitparen, vous allez donc à gauche: p> donc la fonction int code> nommé sig code> et un pointeur de fonction nommé func code> (vous pouvez l'analyser de la même manière plus tard) . P> le signal code> renvoie un pointeur à. .. quelque chose. Retirons la parenthèse et allons à nouveau à nouveau, car nous pouvons: P> void (*signal(int sig, void (*func)(int)) ) (int)