|
��������
sigset, sighold, sigignore, sigpause - ��������� ����������
���������.
���������
#include <signal.h> void (*sigset(sig,func))() int sig; void (*func)(); int sighold(sig) int sig; int sigrelse(sig) int sig; int sigignore(sig) int sig; int sigpause(sig) int sig;
��������
��� ������� ������������ ����������� ��������� ��� ���������
���������� ��������. ��������� ����� sigset ������ ������� ������� ��
������ sig. ��� ������� ����������� ���� � ������ ����������� �������
�������� func, ���� � ���������� ������������� �������� ��������.
��������� sig ����� ���� ��������� ����� �� ����������� ��������, �� ����������� �������� SIGKILL. �������, ��������� �� ���������� ��� ����������� ����������, �� ��������� (��. "����������" ����). ������ �������� sig �������� ��������, ������������ � ����� <signal.h> � ������� ����� ���� ����������� � ���� ���������-���������.
SIGHUP | ����������� ������� ����� |
SIGINT | ���������� |
SIGQUIT* | ����� |
SIGILL* | �������� ���������� (�� ������������ ��� ���������) |
SIGTRAP* | ���������� ����������� (�� ������������ ��� ���������) |
SIGABRT* | ��������� ����� |
SIGFPE* | ������ �������� � ��������� ������ |
SIGKILL | ����������� (�� ����� ���� ������� ��� ������) |
SIGSYS* | �������� ��������� � ��������� ������ |
SIGPIPE | ������ � ����� ��������� ��� ������������ ������ |
SIGALRM | ������ ������� |
SIGTERM | ������ ������������ ���������� |
SIGUSR1 | ������������ ������������� ������ 1 |
SIGUSR2 | ������������ ������������� ������ 2 |
SIGCLD | ������ ��������� �������� |
SIGPWR | ���� ������� |
SIGPOLL | �������� ����������� ������� (��. "����������" ����) |
� ��������� ��������� (*) � ��������������� ������ �������� ����� ��� SIG_DFL.
��������� �������� ��� ������������ �������� �������� func ����� ������������ � ����� <signal.h>. ������ �� ��� �������� ��������, ������� ����� ���� ����������� � ���� ���������-��������� ���� ��������� �� �������, ������������ void, � ����� ���������� ��������, ������� �� ������������� �� ����� ������������ �������.
����������� ���������������� ������������� � �������������� ���������������� ������������� ����������� ������ �������� ���������.
���������� ������� ���� � ������ core, ������� �������� ��� ������, ��� ���� ���� ����� ���� ������. ���� �� ������ ���� ������, ���� ����� ����� ��������� ��������:
� ����� ������ ������ func ������ ���� ���������� �� �������-����������, ������� ���������� ��� ������������� ������� sig. � ���� ������ sigset ����������, ��� ������� ������ ������� ��� ������� �� ��������� ������� sig. ����� ��������� ������ ����� ���� ������������. ����� ������� ����������� �������������� ������� ������� ������ ������� ���������� ���������, �������������� �����.
��� ������������� ������� ��� �������� sig ���������� ����������� � �������� ������������� ���������. ����� ������� ����������� ������� ������� �� ������ ��������������� �� SIG_HOLD. ��� ���������� �������� �� ����������� ������� ������� �� ������ ����������������� �� func, � ����� ��������� ������ ����� ���� ������������.���� ����������� ����������� ������� goto(longjmp - ������� ������), ����� �������������� ������� ������� �� ������ � ������ ������ ������������� ������� ������� ���� ������ ���� ������ sigrelse.
� �������� ����� �������� �� ����������� ������� �������, ���������� ���� ������, ������ ����������� ���� ���������� � �����, ��� �� ��� �������. ������, ���� ������ ������� �� ����� ��������� ������� read(2), write(2), open(2) ��� ioctl(2), ����� �������� ��������� ����� sigpause ��� wait(2), ������� ����������� ������� ��-�� ������� �������������� ����������������� �������� (��� �����-��������), �� ����� ����������� ���������� �������, ����� ���� ���������� ��������� ����� ����� ���������� ����������� �������� -1 �� ��������� errno, ������������� � EINTR.
sighold � sigrelse ������������ ��� ������������ ����������� �������� ����. sighold ������������� �������� ������ ���������� � ��������� �������, ���� ���� ��������� �� ����� ������ � ������� sigrelse. sigrelse ��������������� ������� ������� �� ������ � �������������� �������� � ������� sigset.
sigignore ������������� ������� �� ������ sig � SIG_IGN (��. ����).
sigpause ���������������� ���������� �������, ���� �� �� ������� ������; ���������� �������� pause(2).������, ��� ���������� ��������� ������� sig, �� ������������, � �������������� ��������� ������� �� ���� ������. ���� ��������� ����� ������� ��� �������� ����������, ������� ������ ���� �������� ��� ������������� �������. ��� ���� ���������� �������� ������: ������� sighold ������������ ��� ���������� �������, ����� ����������� ����������. ���� ����� ����������, �� ���������� sigpause ��� �������� �������. ����� sigset �������� ����, ���� ���������� ���� �� ��������� �������:
��. �����
kill(2), pause(2), signal(2), wait(2), setjmp(2)
�����������
��� �������� ���������� sigset ���������� ���������� ��������
������� ������� �� �������� ������ sig. � ��������� ������
������������ �������� SIG_ERR, � errno ��������� �� ������.SIG_ERR
������������ � ����� <signal.h>
��� �������� ������ �������,�� ��� �� �������� ���������� ������������ �������� 0. � ��������� ������ ������������ �������� -1, � errno ��������� �� ������.
����������
������ SIGPOLL ���������, ����� �������� ����������, ���������������
����� STREAMS [��. intro(2)], ������ �������� "�����������" �������.
��� ����, ����� ���� ������ ��� ������, ������� ������ �������
����������� ������ � ������� ������ I_SETSIG ioctl(2). � ���������
������ ���� ������� ������� �� ������� ������ SIGPOLL.
� ����� ������������ ���������� ��������� ������ ������������ ������ ������������� ����� ��������, � �� �� ��������, � ��������� ������ �� �������, ������� ����������� �����. ������� �� ������ SIGKILL �� ��������� �� ����� ���� ��������.
����������� ���������� ����� ���������� ����������� �������, � ����������� �������� ����� ���� �������� �������������� ������������ � ���������� ���������, ��������������� ���������� ��������. � ������ ��������� ��������� ������������ �������� ����� ��������� ����������� ������������� ���������� ��������� � ����� �� ����������.
���������� ��� SIGSEGV ������������� �� ������ ������������� ������� � ��������������� �������. ���� ��������������� ��������� � ��������� ���������� ������������� ��������� ���������, �� ������� ������������ ���� ���������� ���.
������ ������� ���������� ���������, signal(2) � pause(2), �� ������� ������������ � ���������� � ������������ ��������� ��� ��������� ������������� ����� ��������.
|