Funciones de la biblioteca C -pause()

C 标准库 - <signal.h>Biblioteca estándar de C - <signal.h>

pauseLa función es una función de la biblioteca estándar de C que se utiliza para suspender el proceso (pausar la ejecución) hasta que se capture una señal. Esta función está definida en<unistd.h>el archivo de cabecera.

Sintaxis

int pause(void);

Parámetros

pauseLa función no acepta ningún parámetro.

Valor de retorno

  • En caso de éxitopausela función no retorna, porque el proceso es interrumpido por el manejador de señales.
  • En caso de error, retorna -1 yerrnose estableceEINTR, lo que indica que la función fue interrumpida por una señal.

Ejemplo

El siguiente es un ejemplo que usapausela función. El programa configura un manejador de señales que, al capturarSIGINTla señal (generalmente activada por Ctrl+C), reanuda la suspensión.

Ejemplo

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

// Manejador de señales
void handle_sigint(int sig) {
    printf("Caught signal %d\n", sig);
}

int main() {
    // Configurar el manejador de señales para SIGINT
    signal(SIGINT, handle_sigint);

    // Suspender el proceso, esperando una señal
    printf("Waiting for SIGINT (press Ctrl+C)...\n");
    pause();

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

Después de compilar y ejecutar el programa, la salida será:

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

Cuando se presiona Ctrl+C (se envíaSIGINTla señal), la salida será:

Explicación

  • signal(SIGINT, handle_sigint);: estableceSIGINTel manejador de señales dehandle_sigint。
  • pause();: suspende el proceso, esperando que llegue la señal. Cuando se captura laSIGINTseñal,handle_sigintse invoca la función.
  • Después de que se ejecuta el manejador de señales,pausela función retorna -1 y el programa continúa ejecutando el código posterior.

Notas

  • pauseLa función se usa generalmente en programas controlados por señales para suspender el proceso y esperar una señal específica.
  • EnpauseDurante la suspensión de la función, la ejecución del proceso se pausa hasta que se captura una señal.
  • Al manejar señales, se debe prestar atención a la seguridad de las señales; el manejador de señales debe ser lo más breve posible y solo realizar operaciones seguras.

C 标准库 - <signal.h>Biblioteca estándar de C - <signal.h>

Otras extensiones