Blocking a signal means telling the operating system to hold it and
deliver it later. Generally, a program does not block signals
indefinitely—it might as well ignore them by setting their actions to
SIG_IGN. But it is useful to block signals briefly, to prevent
them from interrupting sensitive operations. For instance:
You can use the sigprocmask function to block signals while you
modify global variables that are also modified by the handlers for these
signals.
You can set sa_mask in your sigaction call to block
certain signals while a particular signal handler runs. This way, the
signal handler can run without being interrupted itself by signals.