in

Función de biblioteca C – señal ()


Descripción

La función de la biblioteca C void (* señal (int sig, void (* func) (int))) (int) establece una función para manejar la señal, es decir, un controlador de señal con número de señal sig.

Declaración

A continuación se muestra la declaración de la función signal ().

void (*signal(int sig, void (*func)(int)))(int)

Parámetros

No Señor. Macro y señal
1

SIGABRT

(Anulación de señal) Terminación anormal, como la iniciada por la función.

2

SIGFPE

(Excepción de señal de punto flotante) Operación aritmética errónea, como división por cero o una operación que da como resultado un desbordamiento (no necesariamente con una operación de punto flotante).

3

SIGILL

(Señal de instrucción ilegal) Imagen de función no válida, como una instrucción ilegal. Esto generalmente se debe a una corrupción en el código o a un intento de ejecutar datos.

4

SIGINT

(Interrupción de señal) Señal de atención interactiva. Generalmente generado por el usuario de la aplicación.

5

SIGSEGV

(Violación de la segmentación de la señal) Acceso no válido al almacenamiento: cuando un programa intenta leer o escribir fuera de la memoria, se le asignó.

6

SIGTERM

(Señal de terminación) Solicitud de terminación enviada al programa.

No Señor. Función descriptiva
1

SIG_DFL

Manejo predeterminado: la señal se maneja mediante la acción predeterminada para esa señal en particular.

2

SIG_IGN

Ignorar señal: la señal se ignora.

Valor devuelto

Esta función devuelve el valor anterior del manejador de señales, o SIG_ERR en caso de error.

Ejemplo

El siguiente ejemplo muestra el uso de la función signal ().

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

void sighandler(int);

int main () {
   signal(SIGINT, sighandler);

   while(1) {
      printf("Going to sleep for a second...n");
      sleep(1); 
   }
   return(0);
}

void sighandler(int signum) {
   printf("Caught signal %d, coming out...n", signum);
   exit(1);
}

Compilemos y ejecutemos el programa anterior que producirá el siguiente resultado y el programa entrará en un ciclo infinito. Para salir del programa usamos las teclas CTRL + C.

Going to sleep for a second...
Going to sleep for a second...
Going to sleep for a second...
Going to sleep for a second...
Going to sleep for a second...
Caught signal 2, coming out...

signal_h.htm

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

inicio youtube

Cómo eliminar o deshabilitar videos de YouTube recomendados: rápido y fácil

apple touch icon@2

¿Cómo se agregan comentarios en un VBScript?