Server for Information Technologies ������ ��������������
������� �������������� ����������
(095) 932-9212, 932-9213, 939-0783
E-mail: [email protected]
������ �������� ����(!) ������������� ���������� CIT Forum CD-ROM

PUTMSG(2)

��������
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 ����������� ��������, ���� ��������� ���� �� ���� �� ��������� �������:

[EAGAIN]
������� �������������� ���������, ���������� ���� O_NDELAY, � ������� ������ �� ������ ��������� ���������� ���������� ������� ����������� ���������.
[EAGAIN]
�� ������� �������� ������ ��� ����������� ���������.
[EBADF]
�������� fd �� �������� ���������� ������������ �����, ��������� �� ������.
[EFAULT]
�������� ctlptr, dataptr, ��� flags ��������� �� ������� ����������� �������� ��������� ������������.
[EINTR]
�� ����� ���������� ���������� ������ ���������� ������.
[EINVAL]
�������� flags ����� ������������ ��������, ��� ������ �������� RS_HIPRI, � ����������� ������� �� �������.
[EINVAL]
�����, �� ������� ��������� fd, ������������������.
[ENOSTR]
� ������������ fd �� ������������ �����.
[ENXIO]
���� �� ������ ��������� ������������ �����.
[ERANGE]
������ ������� ������ ��������� �� �������� � �������� ����� ����������� � ������������ ������� ������, ��������� ����� ������� ������� ������. ��� �������� ����� ������������, ���� ����������� ������� ��� ������� ������ ����� �����, ������������� ��������������� ���������, �������� ��� ��������� �������.

����� ����, ��������� ����� putmsg ����������� ��������, ����, �� ��������� � putmsg, � ������ ������ �������� ��������� �� ������ ����������������. � ���� ������ ���������� errno ������������� ��������, ������������ � ���������.

��. �����
intro(2), read(2), getmsg(2), poll(2), write(2).

�����������
��� �������� ���������� ��������� ����� 0; � ������ ������ ������������ -1, � ���������� errno ������������� ��� ������.
Comments: [email protected]
Designed by Andrey Novikov
Copyright © CIT