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

GETMSG(2)

��������
getmsg - ���������� ��������� �� ������, ���������������� � �����������������

���������

        #include <stropts.h>

        int getmsg (fd, ctlptr, dataptr, flags)
        int fd;
        struct strbuf *ctlptr;
        struct strbuf *dataptr;
        int *flags;

��������
��������� ����� getmsg ��������� ��������� �� ������� ������ � ������ ������, ���������������� � ����������������� [��. intro(2)], � �������� ��� � ������, ��������� �������������. ��������� ����� �������� �� ���� ������: ������� ������ � ����������� �������, ������� ���������� � ������ ������ (��. ����). ��������� ������ ����� ������������ ������� ������, ����������� ���������.

�������� fd ������ ���������� �����, ��������������� � �������� �������.

������ �� ���������� ctlptr � dataptr �������� ���������� �� ��������� ���� strbuf, ���������� ��������� ����������:

     int maxlen; /* ������������ ����� ������ */
     int len;    /* ����� ����������� ���������� */
     char *buf;  /* ��������� �� ����� */

��������� buf ��������� �� �����, � ������� ������ ���� �������� ������ ��� ����������� ����������, � maxlen ������ ������ ������ � ������. ������������ �������� len �������� ���������� ���� ������ ��� ����������� ����������, ������� ���������� ���� �������� � �����, ��� 0, ���� ������� ������ ��� ����������� ������� ����� ������� �����, ��� -1, ���� ������� ������ ��� ����������� ������� ����������� � ������ ���������.

����������, �� ������� ��������� �������� flags, ����� ���� ��������� ��� ��������: 0 ��� RS_HIPRI (��. ����).

��������� ctlptr ������������ ��� ���������� ����������� ������� ���������, dataptr - ��� ���������� ������� ������. ���� ctlptr (��� dataptr) ����� NULL, ��� ��������� maxlen ����� -1, ����������� ������� (��� ������� ������) �� ��������������; ��� �������� � ������� ������ ������, � len ��������������� ������ -1. ���� ��������� maxlen ����� 0, � ����������� ������� (��� ������� ������) �������� ��������� ����� ����, ��� �������� � ������� ������ ������, � len ��������������� ������ 0. ���� maxlen ������, ��� ������ ����������� ������� (������� ������), ����������� ������ maxlen ����. � ���� ������ ���������� ����� �������� � ������� ������ ������ � ������������ ��������� ��������, ��� ��� ������� ���� � ������ �����������. ���� ���������� ����������� �� ������������� ���������, �� ����������, �� ������� ��������� �������� flags, ������� �������� RS_HIPRI.

�� ��������� ��������� ����� getmsg ��������� �� ������� ������ � ������ ������ ���������, ���������� �� ����, �������� ��� ������������ ��� ���. ������������, ������, ����� ����������� ������ ������ ������������� ���������, ��������� �� ������ flags �������� RS_HIPRI. � ���� ������ ����� ��������� ������ �� ������������ ���������, ������� � �������, ���� ���� ����� ��� ��������� ��������� ��������������.

���� �� ���������� ����� ������� ��� �������� (���� O_NDELAY), �������, ��������� getmsg, ������������� �� ��� ���, ���� ��������� ���������� ���� (������������ ��� �����) �� �������� � ������� ������ � ������ ������. ���� ���� O_NDELAY ����������, � ��������� ���������� ���� � ������� ������ ���, getmsg ����������� �������� � ����������� ���������� errno �������� EAGAIN.

���� � ������, �� �������� ����������� ���������, ���������� ������������ �����, �� ��������� ����� getmsg ����� ��������� ��������, ���� ������� ������ � ������ �� ������ ������. ����� ����� getmsg �������� 0 ����������� len ��� ��������, �� ������� ��������� ��������� ctlptr � dataptr.

��������� ����� getmsg ����������� ��������, ���� ��������� ���� �� ���� �� ��������� �������:

[EAGAIN]
���������� ���� O_NDELAY, � ��������� ���������� ���� � ������� ������ ���.
[EBADF]
�������� fd �� �������� ���������� ������������ ��������� �����.
[EBADMSG]
���������, ������� ������ ��������, �� �������� ���������� ��� getmsg.
[EFAULT]
�������� ctlptr, dataptr, ��� flags ��������� �� ������� ����������� �������� ��������� ������������.
[EINTR]
�� ����� ���������� ���������� ������ ���������� ������.
[EINVAL]
�������� flags ����� ������������ ��������, ��� �����, �� ������� ��������� fd, ������������������.
[ENOSTR]
� ������������ fd �� ������������ �����.

����� ����, ��������� ����� getmsg ����������� ��������, ����, �� ��������� � getmsg, � ������ ������ �������� ��������� �� ������ ����������������. � ���� ������ ���������� errno ������������� ��������, ������������ � ���������.

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

�����������
��� �������� ���������� ������������ ��������������� ����� ��������. �������� 0 ��������, ��� ��� ��������� ���� ������� ���������. ��������, ������ MORECTL, ��������, ��� �������� ������������� ����� ����������� �������. ��������, ������ MOREDATA, ��������, ��� �������� ������������� ����� ������� ������. ��������, ������ MOREDATA | MORECTL, ��������, ��� �������� ������������� ��� ����� ������� ������, ��� � ����� ����������� �������. ����������� ������ getmsg ��������� ������� ������� ���������.

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