Función de la biblioteca C -sigismember()
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 errno
errnopara 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 <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 la
sigemptysetfunción para inicializar el conjunto de señales como vacío. - Usar la
sigaddsetfunción paraSIGINTañadir la señal al conjunto de señales. - Usar la
sigismemberfunción para comprobar si el conjunto de señales contieneSIGINTySIGTERMla señal. - La salida indica que
SIGINTla 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.