Dispositivos Y Perifericos
Ministerio del Poder Popular para la Defensa
Universidad Nacional Experimental de la Fuerza Armada
Núcleo Falcón – Extensión Punto Fijo
Cátedra: Lenguaje de Programación II
Ing. Sistemas “A”
5to Semestre
Manejo de Señales
*Evento que interrumpe la ejecución normal de un proceso
* La acción por defecto suele ser terminar el proceso que la recibe
* Pueden manejarse (es decir, programarlas para obtener un comportamiento diferente)
* La mayoría de las señales pueden filtrarse mediante una máscara
* Estado de una señal
* El núcleo del SO memoriza el estado de una señal, dependiendo desi la señal está enmascarada o no y si se ignora o no
* Señales: llamadas al sistema
* Sigaddset: Añadir una señal específica a una máscara
* Sigismember: Comprobar si una señal pertenece o no a una máscara
* Sigprocmask: Consultar/establecer la máscara de señales para un proceso
* Sigaction: Capturar/manejar señales
* Sigsuspend: Esperar por una señal
*Sigdelset: Eliminar una señal específica de una máscara
* Sigfillset: Iniciar una máscara de señales con todas las señales
* Sigemptyset: Iniciar una máscara de señales vacía
* Alarm: Generar una alarma (señal de reloj)
* Kill: Enviar una señal
* Señales: kill
* kill: enviar una señal
#include <sys/types.h>
#include <signal.h>
int signal(pid_tpid, int sig)
* Descripción
* Envía la señal sig al proceso o grupo de procesos pid
* Si (pid==0) la señal se envía al grupo de procesos del emisor (salvo a sí mismo)
* Si (pid==-1) y el eUID del emisor es root, la señal se envía a todos los proceso Excepto los del sistema
* El eUID del proceso que envía la señal debe coincidir con el eUID del que la recibe o ser root.* Valor de retorno
* 0 si la señal es enviada y –1 si hay error
* Errores
* Número de señal no válido
* Permisos
* Señales: alarm
* alarm: establecer un temporizador
#include <unistd.h>
unsigned int alarm(unsigned int sig)
* Descripción
* Programa la señal SIGALRM para que ocurra al cabo de un cierto número de segundos(los especificados por el parámetro seconds)
* Un proceso sólo puede tener una petición de alarma pendiente. Las peticione ssucesivas de alarmas no se encolan, cada nueva petición anula la anterior
* alarm(0) cancela las alarmas
* Valor de retorno
* Tiempo restante para que venciese la alarma anterior
* Señales: tratamiento de máscaras
* Llamadas alsistema para definir una máscara de señales
#include <signal.h>
int sigemptyset (sigset_t *set)
int sigfillset (sigset_t *set)
int sigaddset (sigset_t *set, int signum)
int sigdelset (sigset_t *set, int signum)
int sigismember (const sigset_t *set, int signum)
* Descripción
* sigemptyset: inicia una máscara para que no tenga señales seleccionadas
*sigfillset: inicia una máscara para que contenga todas las señales
* sigaddset: pone una señal específica en un conjunto de señales
* sigdelset: quita una señal específica de un conjunto de señales
* sigismember: consulta si una señal pertenece a un conjunto de señales
* Señales: sigprocmask
* sigprocmask: examinar/modificar máscara de señales
#include <signal.h>
intsigprocmask (int how, const sigset_t *set, sigset_t *o_set)
* Descripción
* Examina o modifica la máscara de señales activa para un proceso
* Si una señal está bloqueada por la máscara, no es procesada hasta el momento en que deja de estar bloqueada por la máscara (se memoriza que llegó)
* Parámetro how
* SIG_BLOCK: añade un conjunto de señales a las que se...
Regístrate para leer el documento completo.