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 Erfolg
pauseDie Funktion kehrt nicht zurück, da der Prozess durch den Signal-Handler unterbrochen wird. - Im Fehlerfall gibt sie -1 zurück und wird
errnoSetzen 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;
}
#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.- In
pauseWä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.