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

OPEN(2)

��������
open - ������� ���� ��� ������ ��� ������

���������

        #include <fcntl.h>

        int open (path, oflag [, mode])
        char *path;
        int oflag, mode;

��������
�������� path �������� ���������� �� ���������� ��� �����. ��������� ����� open ��������� ���������� ��� ���������� ����� � ������������� ����� ������� ����� � ������������ �� ��������� ��������� oflag. ��� ������, �� ���������� ������������������ [��. intro(2)], �������� oflag �������� ��� ����������� ��� ������ �� ���������� ������ (�� ������ ���� ������ ����� ���������� ������ ����):

O_RDONLY
������� ������ �� ������.
O_WRONLY
������� ������ �� ������.
O_RDWR
������� �� ������/������.
O_NDELAY
���� ���� ����� �������������� �� ����������� �������� ������ � ������ [��. read(2)write(2)].

��� �������� ������������ ������ � �������������� ������� O_RDONLY ��� O_WRONLY:

  1. ���� ���������� ���� O_NDELAY, �� ����� open ������ �� ������ ����������� ��� ��������, � ����� open ������ ��� ������ ������������ � ���������� �� ������, ���� � ������ ������ ��� ��������, ���������� ���� ��� ������;
  2. ���� �� ���������� ���� O_NDELAY, �� ����� open ������ �� ������ �����������, ���� �����-���� ������� �� ������� ���� ��� ������, � ����� open ������ �� ������ �����������, ���� ����� ���� ������� �� ������� ���� �� ������.
��� �������� �����, ���������������� � ������ �����:
  1. ���� ���������� ���� O_NDELAY, �� ����� open ����������� ��� �������� �������.
  2. ���� �� ���������� ���� O_NDELAY, �� ����� open ����������� �� ��������� �������.
O_APPEND
����� ������ ��������� ������ ������������� ��������� ������� ������� �� ����� �����.
O_SYNC
��� �������� �������� ����� ���� ���� ������������ �� ����������� �������� ������. ���� ���� ����������, �� ������ ����� write(2) ������� ����������� ���������� ��� ������, ��� � ������� �����.
O_CREAT
���� ���� ����������, �� ���� ������������. � ��������� ������ �������������� ��������� � ������ ������������ ����� ��������������� �������, ��������������, ����������� ��������������� ������������ � ������ ��������, � ������� 12 ��� �������� ������ ������� � ����� ��������������� ������� �������� ��������� mode, ����������������� ��������� ������� [��. creat(2)]:
  1. ����, ��������������� ��������� ����� ����� ������ �������� ������ �������� �������� [��. umask(2)], ��������������� ������� 0.
  2. ��� ������������ [��. chmod(2)] ��������������� ������ 0.
O_TRUNC
���� ���� ����������, �� �� ������������ (������ ���������� ������ 0), � ����� ������� � �������� �� ����������.
O_EXCL
���� ����������� ��� ����� O_EXCL � O_CREAT, �� ��������� ����� open ����������� ��������, ���� ���� ��� ����������.

��� �������� ���������������� �������� oflag ����� ���������� ��� ����������� ��� ����� O_NDELAY � ����� �� ������ O_RDONLY, O_WRONLY ��� O_RDWR. ������ ����� ������������� � ����������������� ������������. ���� O_NDELAY ������������ �� ������ ��������� ��������������� � ��������� ��������� ������

[��. getmsg(2), putmsg(2), read(2), write(2)]. ��� �������� ���������, �� ���������� ����� O_NDELAY ������� �� ����������.

��������� ����� ����� ���� ����������� � ����� �������� �����, ����������� ���������� ������ fcntl(2) [��. ����� fcntl(5)].

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

����� ���������� ����� �������� �������� ����� ���������� ��������� ������� exec(2) [��. fcntl(2)].

��������� ����� open ����������� �������� � ���������� ���������� ����� �� �����������, ���� ��������� ���� �� ���� �� ��������� �������:

[EACCES]
��� ����� �� ����� ��� ���������� ��������.
[EACCES]
��� ���������� ����� ��� ���� �� ���������� ��������, ���������� ��������� oflag.
[EAGAIN]
���� ���������� � ������ � ���� ������������ [��. chmod(2)].
[EEXIST]
����� O_CREAT � O_EXCL ����������� � ��������� ���� ����������.
[EFAULT]
�������� path ��������� �� ������� ����������� �������� ��������� ������������.
[EINTR]
�� ����� ���������� ���������� ������ ���������� ������.
[EIO]
������ ����� ��� ������ ��� �������� ����������������.
[EISDIR]
��������� ���� �������� ��������� � ����������� �� ������ ��� ������/������.
[EMFILE]
����������� ����������� ���������� ���������� ������������ ������, �������� ������������ � ����� ��������.
[EMULTIHOP] ���������� path ������� ������������� ��������� � ��������� �����������.
[ENFILE]
������������ ��������� ������� ������.
[ENOENT]
���� O_CREAT �� ���������� � ��������� ���� �� ����������.
[ENOLINK]
���������� ��� path ��������� �� ��������� ���������, ����� � ������� � ������ ������ ���.
[ENOMEM]
������� �� � ��������� �������� ������ ��� ���������� ���������.
[ENOSPC]
����������� ����� O_CREAT � O_EXCL � ��� ��������� ���������� ������.
[ENOSR]
��� ����� ��� ������.
[ENOTDIR]
��������� �������� �� �������� ���������.
[ENXIO]
��������� ���� �������� ����������� ���������� ��� ������� ������, � ����������, ��������������� � ���� ����������� ������, �� ����������.
[ENXIO]
����������� ����� O_NDELAY � O_WRONLY, ��������� ���� �������� ����������� ������� � ��� ��������, ���������� ���� ��� ������.
[ENXIO]
��������� ������� ��������� ��������� �������� ��� ������ ��� �������� ����������������.
[EROFS]
��������� ���� ���������� � �������� �������, ��������� ������ �� ������, � ����������� �� ������ ��� ������/������.
[ETXTBSY]
���� �������� ������ ������, ������� � ������ ������ �����������.

��. �����
chmod(2), close(2), creat(2), dup(2), fcntl(2), intro(2), lseek(2), read(2), getmsg(2), putmsg(2), umask(2), write(2), fcntl(5).

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