Función de la biblioteca C -sigdelset()

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

Descripción

sigdelsetLa función es una función de la biblioteca estándar de C que se utiliza para eliminar una señal específica de un conjunto de señales. Esta función está definida en<signal.h>el archivo de cabecera.

Sintaxis

int sigdelset(sigset_t *set, int signo);

Parámetros

  • sigset_t *set: apunta a unsigset_tvariable de conjunto de señales de tipo.
  • int signo: el número de señal que se va a eliminar del conjunto de señales.

Valor de retorno

  • Devuelve 0 en caso de éxito.
  • Devuelve -1 en caso de error y estableceerrnopara indicar el tipo de error.

Ejemplo

A continuación se muestra un ejemplo de uso de lasigdelsetfunción para eliminar una señal específica de un conjunto de señales. El programa inicializa un conjunto de señales que contiene todas las señales y luego elimina laSIGINTseñal del conjunto y comprueba si el conjunto contiene laSIGINTseñal.

Ejemplo

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

int main() {
    sigset_t set;

    // Inicializar el conjunto de señales, incluyendo todas las señales
    if (sigfillset(&set) == -1) {
        perror("sigfillset");
        return 1;
    }

    // Eliminar SIGINT del conjunto de señales
    if (sigdelset(&set, SIGINT) == -1) {
        perror("sigdelset");
        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");
    }

    return 0;
}

La posible salida del programa de ejemplo anterior es la siguiente:

SIGINT is not in the set

El programa inicializa un conjunto de señales que contiene todas las señales, luego elimina laSIGINTseñal del conjunto y comprueba si el conjunto contiene laSIGINTseñal. El resultado muestra que laSIGINTseñal ya no está en el conjunto de señales.

Explicación

  • sigset_t set;: define una variable de conjunto de señales.
  • Usa lasigfillsetfunción para inicializar el conjunto de señales de modo que contenga todas las señales.
  • Usa lasigdelsetfunción para eliminar laSIGINTseñal del conjunto.
  • Usa lasigismemberfunción para comprobar si el conjunto de señales contiene laSIGINTseñal.
  • La salida muestra que laSIGINTseñal se ha eliminado del conjunto de señales.

Notas

  • sigdelsetLa función se utiliza para eliminar una señal específica de un conjunto de señales.
  • Si el número de señal no es válido,sigdelsetla función devolverá -1 y estableceráerrnopara indicar el tipo de error.

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

Otras extensiones