C-Bibliotheksfunktionen -pause()

C-Standardbibliothek - <signal.h>

pauseDie Funktion ist eine Funktion in der C-Standardbibliothek und wird verwendet, um einen Prozess anzuhalten (die Ausführung zu pausieren), bis ein Signal abgefangen wird. Diese Funktion ist definiert in<unistd.h>In der Header-Datei.

Syntax

int pause(void);

Parameter

pauseDie Funktion akzeptiert keine Parameter.

Rückgabewert

  • Bei ErfolgpauseDie Funktion kehrt nicht zurück, da der Prozess durch den Signal-Handler unterbrochen wird.
  • Im Fehlerfall gibt sie -1 zurück und wirderrnoSetzen aufEINTR, was anzeigt, dass die Funktion durch ein Signal unterbrochen wurde.

Beispiel

Das Folgende ist ein Beispiel unter Verwendung vonpauseBeispielprogramm für die Funktion. Dieses Programm richtet einen Signal-Handler ein, der beim Abfangen einesSIGINTSignals (normalerweise durch Strg+C ausgelöst), aus der Suspendierung fortgesetzt wird.

Beispiel

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

// Signal-Handler
void handle_sigint(int sig) {
    printf("Signal %d empfangen\n", sig);
}

int main() {
    // Signal-Handler für SIGINT setzen
    signal(SIGINT, handle_sigint);

    // Prozess anhalten, auf ein Signal warten
    printf("Warte auf SIGINT (Strg+C drücken)...\n");
    pause();

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

Nach dem Kompilieren und Ausführen des Programms lautet die Ausgabe:

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

Wenn Strg+C gedrückt wird (Senden einesSIGINTSignals), lautet die Ausgabe:

Erklärung

  • signal(SIGINT, handle_sigint);: EinstellungenSIGINTDer Signal-Handler isthandle_sigint。
  • pause();: setzt den Prozess aus und wartet auf das Eintreffen eines Signals. Beim AbfangenSIGINTWenn ein Signal auftritt,handle_sigintDie Funktion wird aufgerufen.
  • Nachdem der Signal-Handler ausgeführt wurde,pausegibt die Funktion -1 zurück, und das Programm setzt die Ausführung des nachfolgenden Codes fort.

Hinweise

  • pauseDie Funktion wird typischerweise in signalgesteuerten Programmen verwendet, um einen Prozess auszusetzen und auf ein bestimmtes Signal zu warten.
  • InpauseWährend die Funktion aussetzt, wird die Prozessausführung angehalten, bis ein Signal abgefangen wird.
  • Beim Umgang mit Signalen sollte auf Signalsicherheit geachtet werden; der Signal-Handler sollte so kurz wie möglich sein und nur sichere Operationen ausführen.

C-Standardbibliothek - <signal.h>

Weitere Erweiterungen