Tap the interrupt signal Posted on May 20th
When you hit control+c, you are actually send a SIGINT ( Interrupt signal ) to your program. By default, your program will be terminated after receiving SIGINT. But you can change the way of handling Interrupt signal.
Some of the application tends to ignore SIGINT. You can easily do that with sigaction.
Create a void function that intentionally do nothing. Create a sigaction structure variable, set the sa_handle point to the void fucntion. At last calling sigaction function, telling the system, while receiving SIGINT, call the void function.
Observed that the sigaction have to take 3 parameters, and the third param is to store the default sigaction structure for SIGINT. specify NULL for ignoring that.
What if I wanna tap the interrupt signal, do some operations and then allows the default SIGINT operation carry on? This can be very useful, for example, I want my program to log whatever in my memory to a file before the program terminate.
I save the default sigaction structure, and after finish running my handler operation, i reset my sigaction handler to default one and send myself SIGINT.
Trackback URL
[...] Tap the interrupt signal [...]
Commented nanosleep is better than sleep and usleep on May 25th, 2007.this c and c++ very super but my system do not execute these pgms.it had some errors what i do?
Commented kumar on July 10th, 2007.fine how could i signin
Commented baha dweik on November 19th, 2007.it works greatly.
Commented eren on March 27th, 2008.