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.