C ++ signal () - Bibliothèque standard C ++

La fonction signal () en C ++ définit le gestionnaire d'erreurs pour le signal spécifié.

signal () Prototype

 void (* signal (int sig, void (* func) (int))) (int);

La signalfonction définit une méthode pour gérer le signal. Le gestionnaire de signaux peut être défini de telle sorte qu'une des actions suivantes soit effectuée:

  • Traitement par défaut du signal.
  • Ignorez le signal.
  • La fonction définie par l'utilisateur est appelée pour gérer le signal.

Il est défini dans le fichier d'en-tête "> fichier d'en-tête.

Paramètres signal ()

  • sig: Le signal à traiter par le gestionnaire de signaux. Il peut prendre l'une des valeurs suivantes:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • SIGINT
    • SIGSEGV
    • SIGTERM
  • handler: le gestionnaire de signal qui gère le signal. Il peut s'agir de l'un des éléments suivants:
    • SIG_DFL: gestion par défaut.
    • SIG_IGN: ignore le signal.
    • Pointeur vers une fonction: fonction définie par l'utilisateur pour gérer le signal. La signature de la fonction doit être équivalente à ce qui suit:
       void fun (int sig);

signal () Valeur de retour

En cas de succès, il renvoie le gestionnaire de signal précédent et en cas d'échec SIG_ERR est renvoyé.

Exemple: Fonctionnement de la fonction signal ()

 #include #include using namespace std; sig_atomic_t signalled = 0; void handler(int sig) ( signalled = 1; ) int main() ( signal(SIGINT, handler); raise(SIGINT); if (signalled) cout << "Signal is handled"; else cout << "Signal is not handled"; return 0; )

Lorsque vous exécutez le programme, la sortie sera:

 Le signal est géré

Articles intéressants...