Función de la biblioteca C -sigismember()

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

Descripción

sigismemberLa función es una función de la biblioteca estándar de C utilizada para comprobar si una señal específica está en el conjunto de señales. Esta función se define en<signal.h>el archivo de cabecera.

Sintaxis

int sigismember(const sigset_t *set, int signo);

Parámetros

  • const sigset_t *set: apunta a unasigset_tvariable de conjunto de señales de tipo.
  • int signo: el número de señal a comprobar.

Valor de retorno

  • Si la señal está en el conjunto de señales, retorna 1.
  • Si la señal no está en el conjunto de señales, retorna 0.
  • Si se produce un error, retorna -1 y establece errnoerrnopara indicar el tipo de error.

Ejemplo

El siguiente es un ejemplo que utilizasigismemberla función para comprobar si el conjunto de señales contiene una señal específica. El programa inicializa un conjunto de señales vacío, y añadeSIGINTla señal al conjunto de señales, y comprueba si el conjunto de señales contieneSIGINTla señal.

Ejemplo

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

int main() {
    sigset_t set;

    // Inicializar el conjunto de señales vacío
    if (sigemptyset(&set) == -1) {
        perror("sigemptyset");
        return 1;
    }

    // Añadir SIGINT al conjunto de señales
    if (sigaddset(&set, SIGINT) == -1) {
        perror("sigaddset");
        return 1;
    }

    // Comprobar si el conjunto de señales contiene SIGINT
    if (sigismember(&set, SIGINT)) {
        printf("SIGINT is in the set\n");
    } else {
        printf("SIGINT is not in the set\n");
    }

    // Comprobar si el conjunto de señales contiene SIGTERM
    if (sigismember(&set, SIGTERM)) {
        printf("SIGTERM is in the set\n");
    } else {
        printf("SIGTERM is not in the set\n");
    }

    return 0;
}

El posible resultado de ejecutar el programa de ejemplo anterior es el siguiente:

SIGINT is in the set
SIGTERM is not in the set

El programa inicializa un conjunto de señales vacío, añadeSIGINTla señal al conjunto de señales, y comprueba si el conjunto de señales contieneSIGINTySIGTERMla señal, el resultado indica queSIGINTla señal está en el conjunto de señales, mientras queSIGTERMla señal no está en el conjunto de señales.

Explicación

  • sigset_t set;: define una variable de conjunto de señales.
  • Usar lasigemptysetfunción para inicializar el conjunto de señales como vacío.
  • Usar lasigaddsetfunción paraSIGINTañadir la señal al conjunto de señales.
  • Usar lasigismemberfunción para comprobar si el conjunto de señales contieneSIGINTySIGTERMla señal.
  • La salida indica queSIGINTla señal está en el conjunto de señales, mientras queSIGTERMla señal no está en el conjunto de señales.

Notas

  • sigismemberLa función se utiliza para comprobar si una señal específica está en el conjunto de señales.
  • Si el número de señal no es válido,sigismemberla función retornará -1 y establecerá errnoerrnopara indicar el tipo de error.

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

Otras extensiones