next up previous
Next: Primitive pause() Up: Recepção de sinais: Previous: Recepção de sinais:


Primitive signal()

  #include <signal.h>

  typedef void (*sighandler_t)(int);
  sighandler_t signal(int signum, sighandler_t handler);

Valor de retorno: o valor anterior do manipulador do sinal, ou SIG_ERR (normalmente -1) quando houver erro.

A chamada de sistema signal() define um novo manipulador (handler) para o sinal especificado pelo número signum. Em outras palavras, ela intercepta o sinal signum. O manipulador do sinal é ''setado'' para handler, que é um ponteiro para uma função que pode assumir um dos três seguintes valores:

Pode-se notar então que é possível de modificar o comportamento de um processo na chegada de um dado sinal. É exatamente isso que se passa para um certo número de processos standards do sistema: o shell, por exemplo, ao receber um sinal SIGINT irá escrever na tela o prompt (e não será interrompido).


next up previous
Next: Primitive pause() Up: Recepção de sinais: Previous: Recepção de sinais:
Celso Alberto Saibel Santos 2000-11-14