|
��������
putmsg - ������� ��������� � �����, ��������������� �
�����������������
���������
#include <stropts.h> int putmsg (fd, ctlptr, dataptr, flags) int fd; struct strbuf *ctlptr; struct strbuf *dataptr; int flags;
��������
��������� ����� putmsg ������� ��������� [��. intro(2)]
�� ����������� �������, ��������� �������������, � �������� ��������� � �����. ��������� ����� �������� ��
���� ������: ������� ������ � ����������� �������, ������� ������� �� ������ ������� (��. ����). ���������
������ ����� ������������ ������� ������, ������� �������� ��� ���������.
�������� fd ������ ���������� �����, ��������������� � �������� �������.
��������� ctlptr � dataptr - ��� ��������� �� ��������� ���� strbuf, ���������� ��������� ��������:
int maxlen; /* ������������ ����� ������ */ int len; /* ����� ����������� ���������� */ char *buf; /* ��������� �� ����� */
�������� ctlptr ��������� �� ���������, ����������� ����������� ������� ���������, ���� ������� �������. ��������� buf ��������� �� �����, � ������� ����������� ����������� ����������, � len ������ ���������� ����, ������� ������ ���� �������. ���� maxlen � ��������� ������ putmsg �� ������������ [��. getmsg(2)]. ����� �� ������� dataptr ������ ������� ������, ���� ������� �������, ������� ������ ���� �������� � ���������.
�������� flags ����� ��������� ��� ��������: 0 ��� RS_HIPRI (��. ����).
����� ������� ������ � ���������, �������� dataptr ������ ���� ������� �� NULL, � �������� ���������� len ������ ���� ���������������. ����� ������� ����������� ����������, ��������������� �������� ������ ���� ����������� ��� ctlptr. ������� ������ (����������� �������) �� ����� �������, ���� �������� dataptr (ctlptr) ����� NULL, ��� �������� ���������� len ��� dataptr (ctlptr) ����� -1.
���� ������ ����������� ������� � �������� ����������, �� ������� ��������� �������� flags, ����� RS_HIPRI, ���������� ������������ ���������. ���� �������� �� ������ flags ����� 0, ���������� �������������� ���������. ���� �� ������� ����������� ������� � �������� �� ������ flags ����� RS_HIPRI, ��������� ����� putmsg ����������� ��������, � ���������� errno �������� �������� EINVAL. ���� �� ������� �� ����������� ������� �� ������� ������ � �������� �� ������ flags ����� 0, ��������� �� ���������� � ������������ ������� ���������.
� ������ ������� �������������� ��������� �������, ��������� putmsg, �������������, ���� ������� ������ �� ������ ����� ���������� ���������� ������� ����������� ���������. ��� ������������ ��������� ������������ �� ���� ������� �� ����������. ��� �������������� ��������� ������������ ����� �� ����������, ���� ������� ������ �� ������ �����, �� ���������� ���� O_NDELAY; ��������� ����� ����������� ��������, ���������� errno �������� EAGAIN.
����� ���� �������, ��������� putmsg, �������������, ������ ����������� ������������ ����� ������ ��� ��������� � ������ (���������� �� �������������� � ����� O_NDELAY), ���� ��� ���� ����� �� ����� ��������� ��-�� ���������� ��������� ��������. ��������� �� ������ �� ����������.
��������� ����� putmsg ����������� ��������, ���� ��������� ���� �� ���� �� ��������� �������:
����� ����, ��������� ����� putmsg ����������� ��������, ����, �� ��������� � putmsg, � ������ ������ �������� ��������� �� ������ ����������������. � ���� ������ ���������� errno ������������� ��������, ������������ � ���������.
��. �����
intro(2), read(2), getmsg(2), poll(2), write(2).
�����������
��� �������� ���������� ��������� ����� 0; � ������
������ ������������ -1, � ���������� errno ������������� ��� ������.
|