������ �������� ����(!) ������������� ����������
|
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:
- ���� ���������� ���� O_NDELAY, �� ����� open
������ �� ������ ����������� ��� ��������, �
����� open ������ ��� ������ ������������ � ���������� �� ������, ���� � ������ ������ ���
��������, ���������� ���� ��� ������;
- ���� �� ���������� ���� O_NDELAY, �� ����� open
������ �� ������ �����������, ���� �����-����
������� �� ������� ���� ��� ������, � �����
open ������ �� ������ �����������, ���� �����
���� ������� �� ������� ���� �� ������.
��� �������� �����, ���������������� � ������ �����:
- ���� ���������� ���� O_NDELAY, �� ����� open
����������� ��� �������� �������.
- ���� �� ���������� ���� O_NDELAY, �� ����� open
����������� �� ��������� �������.
- O_APPEND
- ����� ������ ��������� ������ ������������� ��������� ������� ������� �� ����� �����.
- O_SYNC
- ��� �������� �������� ����� ���� ���� ������������
�� ����������� �������� ������. ���� ���� ����������, �� ������ ����� write(2) ������� �����������
���������� ��� ������, ��� � ������� �����.
- O_CREAT
- ���� ���� ����������, �� ���� ������������. � ��������� ������ �������������� ��������� � ������
������������ ����� ��������������� �������, ��������������, ����������� ��������������� ������������ � ������ ��������, � ������� 12 ��� ��������
������ ������� � ����� ��������������� �������
�������� ��������� mode, ����������������� ��������� ������� [��. creat(2)]:
- ����, ��������������� ��������� ����� ����� ������ �������� ������ �������� �������� [��.
umask(2)], ��������������� ������� 0.
- ��� ������������ [��. 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 ������������� ��� ������