Default handling for that signal shall occur, if the value of func is SIG_DFL.
The signal shall be ingnored if the value of func is SIG_IGN.
When a signal occurs, and func points to a function, the equivalent of: (*func)(sig);
is executed.
If and when the signal handler returns, the program shall resume execution at the
point it was interrupted.
If the handler is called, signal() shall return the value of
func of the last call to signal() that pertains to the
specified signal sig.
The signal( ) function shall return SIG_ERR, and set errno to EINVAL if the sig argument
passed to signal() is not a valid signal number
if an attempt is made to catch a
signal that cannot be caught or ignore a signal that cannot be ignored.