Write a C program that does not terminate when Ctrl+C is pressed
Write a C program that doesn’t terminate when Ctrl+C is pressed. It prints a message “Cannot be terminated using Ctrl+c” and continues execution.
We can use signal handling in C for this. When Ctrl+C is pressed, SIGINT signal is generated, we can catch this signal and run our defined signal handler. C standard defines following 6 signals in signal.h header file.
SIGABRT – abnormal termination.
SIGFPE – floating point exception.
SIGILL – invalid instruction.
SIGINT – interactive attention request sent to the program.
SIGSEGV – invalid memory access.
SIGTERM – termination request sent to the program.
Additional signals are specified Unix and Unix-like operating systems (such as Linux) defines more than 15 additional signals. See http://en.wikipedia.org/wiki/
The standard C library function signal() can be used to set up a handler for any of the above signals.
/* A C program that does not terminate when Ctrl+C is pressed */ #include <stdio.h> #include <signal.h> /* Signal Handler for SIGINT */ void sigintHandler( int sig_num) { /* Reset handler to catch SIGINT next time. signal (SIGINT, sigintHandler); printf ( "\n Cannot be terminated using Ctrl+C \n" ); fflush (stdout); } int main () { /* Set the SIGINT (Ctrl-C) signal handler to sigintHandler signal (SIGINT, sigintHandler); /* Infinite loop */ while (1) { } return 0; } |
Output: When Ctrl+C was pressed two times
Cannot be terminated using Ctrl+C Cannot be terminated using Ctrl+C
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Recommended Posts:
- C program that does not suspend when Ctrl+Z is pressed
- Write a URL in a C++ program
- Write a C program that won't compile in C++
- C program to write an image in PGM format
- Write a program that produces different results in C and C++
- Write a C program that displays contents of a given file like 'more' utility in Linux
- Write a C program to print "GfG" repeatedly without using loop, recursion and any control structure?
- Write a C program to print "Geeks for Geeks" without using a semicolon
- How to write your own header file in C?
- Write your own memcpy() and memmove()
- When should we write our own copy constructor?
- When should we write our own assignment operator in C++?
- Read/Write structure to a file in C
- How to write a running C code without main()?
- Write a C macro PRINT(x) which prints x
Improved By : nidhi_biet