What does this statement below do? If anyone can explain this function I would really appreciate it.
signal(SIGINT, SIG_DFL);
What does this statement below do? If anyone can explain this function I would really appreciate it.
signal(SIGINT, SIG_DFL);
It sets the default action for SIGINT as described in man page below;
From Linux signal man page;
signal() function sets the disposition of the signal signum to handler, which is either SIG_IGN, SIG_DFL or the address of a programmer-defined function.
SIGINT is the interrupt signal (ctrl+C). Its default behaviour is to terminate the process. SIGINT signal can be dis-positioned, means one can change the default behaviour ( By calling sighandler, or setting it SIG_IGN ) Now once the action is changes and you want to set it again the default behaviour of this signal then you should write
signal(SIGINT, SIG_DFL);
It will again change the default behaviour of the signal. ( which is to terminate a process )
Set the handling of the SIGINT signal to its default.
If you are on a *nix system, try
man signal
to get answers like this. That (and maybe checking some of the pages listed under "See Also") will also tell you what signals are.As for what the defaults are - it's going to be one of "ignore it", "terminate the program", or "cause the program to dump core". Which it is depends on the specific signal, and I don't remember the default for SIGINT, sorry.
The line you wrote changes the signal handler of the interrupt signal back to the default