This blog is under construction

Saturday, 5 May 2012

signal

Header file:
    signal.h

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

Description:
     It sets the disposition of signal signum to handler and finds how to handle the subsequent signals.



Sample program for signal in C:



  #include<stdio.h>
  #include<stdlib.h>
  #include<signal.h>
  /*
   * ./a.out &
   * kill -SIGUSR1 3218
   * kill 3218
   */
  static void sig_alarm(int signo) {
        if(signo == SIGUSR1)
                printf("SIGUSR1 catched\n");
  }
  int main() {
        if(signal(SIGUSR1, sig_alarm) == SIG_ERR)
                printf("Unable to catch SIGALARM\n");
        while(1) {
                sleep(5);
        }
  }







  Output:
  jp@jp-VirtualBox:~/cpgms/signals$ ./a.out &
  jp@jp-VirtualBox:~/cpgms/signals$ kill -USR1 2367
  SIGUSR1 catched
  jp@jp-VirtualBox:~/cpgms/signals$ kill 2367
  [1]+  Terminated              ./a.out





No comments:

Post a Comment