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

READ(2)

��������
read - ������ �� �����

���������

        int read (fildes, buf, nbyte)
        int fildes;
        char *buf;
        unsigned nbyte;

��������
�������� fildes - ��� ���������� �����, ���������� ����� ���������� ��������� ������� creat(2), open(2), dup(2), fcntl(2) ��� pipe(2).

��������� ����� read �������� ��������� nbyte ���� �� �����, ���������������� � ������������ fildes, � �����, ���������� �� ������� �������� �������� buf.

��� ���������, ����������� ����������������, ��������� ����� read ��������� ������ �� �����, ������� � ��������� ������� �������, ���������������� � ������������ fildes. ����� ���������� ������ ��������� ������� ������� ����� ������������� �� ���������� ����������� ����.

��� ��������� ��� ����������� ���������������� ������ ������ ����������� � ������� �������. �������� ��������� ������� ������� ����� ��� ������ ���������� ������������.

��� �������� ���������� ���������� ������ read ������������ ���������� ����, ������� ����������� � ���������� � �����; ��� ���������� ����� ���� ������ �������� ��������� nbyte, ���� ���� ������������ � ������ ����� [��. ioctl(2)termio(7)] ��� ���� ���������� ����, ���������� � �����, ������ �������� ��������� nbyte. ���� ������� ������� ��������� � ������ �����, ��������� ����� ����� 0.

������ � ��������������� [��. intro(2)] ����� ����������� � ���� ��������� �������: �������, ������ ��������� ��� ������ � ������ ��������� �� �������. ����������� �������� ������� �����. � ������� ���������� ������ ioctl ����� ����� ���� ������� (����� I_SRDOPT [��. streamio(7)]) � ������� (����� I_GRDOPT). � �������� ������ ��������� ����� read �������� ������ �� ������ �� ��� ���, ���� �� ������� nbyte ���� ��� ���� �� ������� ��� ������ ������. � ���� ������ ������� ��������� ������������.

� ������ ��������� ��� ������ ��������� ����� read �������� ������ �� ��� ���, ���� �� ������� nbyte ���� ��� ���� �� �������� ������� ���������. ���� ��������� ��������� �� ���������, �� ���������� ������ ���������� � ����� � ����� ���� ��������� ������������ �������� read ��� getmsg(2). � ������ ��������� �� ������� ����� ���������� ������ �� ��� ���, ���� �� ����� �������� nbyte ���� ��� ���� �� ���������� ������� ���������; ������ ������������� ������, ���������� � ��������� �� ���������� ���������� ������ read, ��������, � �� ������ �������� ������������ �������� read ��� getmsg.

��� ������� ������ �� �������� ����� � ������������� ������ ����� ���������� [��. chmod(2)] � ��� ������� ���������� �� ������ (������ ���������) ���� �������� �����, ������� ������ ���� ��������, � ����������� �� �������� ����� O_NDELAY ��������� ����� read ����� ���� ��������� �������:

  1. ���� ���������� ���� O_NDELAY, �� ������������ �������� -1, � ���������� errno ������������� ��� ������ EAGAIN.
  2. ���� ���� O_NDELAY �� ����������, �� �������� ������� ������������� �� ������ ����������.
��� ������� ������ �� ������� ������:
  1. ���� ���������� ���� O_NDELAY, �� ��������� ����� read ���������� �������� 0.
  2. ���� �� ���������� ���� O_NDELAY, �� �������� ������� ������������� �� ��� ���, ���� ������ �� ����� �������� � ����, ��� ���� ���� �� ���������� ���� �������� �� ������.
��� ������� ������ �� �����, ���������������� � ����������, ����� ��� ������, ��������������� ��� ������:
  1. ���� ���������� ���� O_NDELAY, �� ������������ �������� 0.
  2. ���� �� ���������� ���� O_NDELAY, �� �������� ������� ������������� �� ��� ���, ���� ������ �� ��������.
��� ������� ������ �� �����, ���������������� � �������, � ������� ��� ������:
  1. ���� ���������� ���� O_NDELAY, �� ������������ �������� -1, � ���������� errno ������������� ��� ������ EAGAIN.
  2. ���� �� ���������� ���� O_NDELAY, �� �������� ������� ������������� �� ��� ���, ���� ������ �� ��������.

��� ������ � ���������������� ������� �� ������ ��������� (�� ���� ���������, ���������� 0 ����) ������������ ������������� ������� ������. � ������� ������ ��������� ����� read ������ �����, ���� �� ������� nbyte ����, ��� ���� �� ������� ��� ������ �� ������, ��� ���� �� �������� ������ ���������. ����� read ���������� ���������� ����������� ���� � �������� ������ ��������� ����� � ����� ��� ������������ ���������� � ������� ������� read ��� getmsg. � ���� ������ ������� ��� ���������� ������� ��������� ������������ �������� 0 � ���� ��������� ��������� �� ������. ���� ������ ��������� �������� ��� ������ ��������� � ������, �� �������� 0 ������������ ���������� �� ������ ������.

��� ������ � ��������������� ��������� ����� read ����� ������������ ������ ��������� � �������. �� �� � ��������� ���������� ������������ ��������� � ����������� ��������, ���� �������� �������� ��������� � ������ ������.

���� � ������ ���������� ������������ �����, �� ��������� ����� read ����� ��������� ��������, ���� ������� ������ � ������ �� ������ ������. ����� ����� read ������ �������� 0.

��������� ����� read ����������� ��������, ���� ��������� ���� �� ���� �� ��������� �������:

[EAGAIN]
����������� ����� ����� ���������� ����� � O_NDELAY, � ��������� ������� ����� ������������.
[EAGAIN]
����� ���������� ��������� ������, ��������������� ��� ��������������� �����/������, �������� ��������� �������������.
[EAGAIN]
��� ������������� ����� O_NDELAY � ������ ��� ���������, ��������� ������.
[EBADF]
�������� fildes �� �������� ���������� ������������ �����, ��������� �� ������.
[EBADMSG]
���������, ����������� �� ������, �� �������� ���������� � �������.
[EDEADLK]
������� �������� ������ �������� � ������.
[EFAULT]
�������� buf ��������� �� ������� ����������� �������� ��������� ������������.
[EINTR]
�� ����� ���������� ���������� ������ ���������� ������.
[EINVAL]
������� ������ �� ������, ������� ������������������.
[ENOLCK]
��� ���������� ����� � ��������� ������� ����������.
[ENOLINK]
�������� fildes �������� ������������ ����� �� ��������� ����������, ����� � ������� � ������ ������ ���.

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

��. �����
creat(2), dup(2), fcntl(2), ioctl(2), intro(2), open(2), pipe(2), getmsg(2). streamio(7), termio(7) � ����������� ��������������.

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