Fonctions de la bibliothèque C -pause()

Bibliothèque standard C - <signal.h>

pauseLa fonction est une fonction de la bibliothèque standard C, utilisée pour suspendre (mettre en pause l'exécution) un processus jusqu'à ce qu'un signal soit capté. Cette fonction est définie dans<unistd.h>Dans le fichier d'en-tête.

Syntaxe

int pause(void);

Paramètre

pauseLa fonction n'accepte aucun paramètre.

Valeur de retour

  • En cas de succèspauseLa fonction ne retourne pas, car le processus est interrompu par le gestionnaire de signal.
  • En cas d'échec, elle renvoie -1, eterrnoDéfini àEINTR, ce qui indique que la fonction a été interrompue par un signal.

Exemple

Ce qui suit est un exemple utilisantpauseExemple de programme de la fonction. Ce programme met en place un gestionnaire de signal qui, lorsqu'il intercepte leSIGINTsignal (généralement déclenché par Ctrl+C), reprend après une suspension.

Exemple

#include <stdio.h>
#include <signal.h>
#include <unistd.h>

// Gestionnaire de signal
void handle_sigint(int sig) {
    printf("Signal intercepté %d\n", sig);
}

int main() {
    // Définir le gestionnaire de signal pour SIGINT
    signal(SIGINT, handle_sigint);

    // Suspendre le processus, attendre un signal
    printf("En attente de SIGINT (appuyez sur Ctrl+C)...\n");
    ⟦0⟧();

    printf("Sortie...\n");
    return 0;
}

Après compilation et exécution du programme, la sortie sera :

Waiting for SIGINT (press Ctrl+C)...

Lorsque vous appuyez sur Ctrl+C (envoi duSIGINTsignal), la sortie sera :

Explication

  • signal(SIGINT, handle_sigint);: ParamètresSIGINTLe gestionnaire de signal esthandle_sigint。
  • pause();: suspend le processus, en attendant l'arrivée d'un signal. Lors de la captureSIGINTLorsqu'un signal se produit,handle_sigintLa fonction est appelée.
  • Après l'exécution du gestionnaire de signal,pausela fonction renvoie -1, et le programme continue d'exécuter le code suivant.

Notes

  • pauseLa fonction est généralement utilisée dans les programmes pilotés par signaux pour suspendre un processus et attendre un signal spécifique.
  • DanspausePendant que la fonction est en suspension, l'exécution du processus est mise en pause jusqu'à ce qu'un signal soit capturé.
  • Lors du traitement des signaux, il faut prêter attention à la sécurité des signaux ; le gestionnaire de signal doit être aussi court que possible et n'effectuer que des opérations sûres.

Bibliothèque standard C - <signal.h>

autres extensions