������ �������� ����(!) ������������� ����������
|
CIT Forum CD-ROM
|
|
INTRO(2)
��������
intro - �������� � �������� ��������� ������� � ������� ������
���������
#include <errno.h>
��������
� ���� ������� ����������� ��� ��������� ������. ����������� �� ��� ����� ���� ��� ��������� �������� ����
���������� ��� ������. ��������� ������ ������������
������������ ��������, ������������ � ������ ������.
����� ������ ��� -1 ��� ��������� NULL; ������ ������������� ��� �������� ������� ������. ����� ������ �������� ����� ����� ������� ���������� errno. ��� ���������� �� ���������� ��� �������� �������, ������� �����
����� ������������ �� �������� ������ � ������ ����������� ������.
� �������� ������� ���������� ������ ���������� ������
��������� ������� ������. ���� ���������� ������ ������
������� ������ � �� ������������� ����, ��� ��� ���������� �� ���������� ����� <errno.h>.
- 1 EPERM �� ��������
- ������ ��� ������ ��������� �� ������� �������������� ����, ������ � �������� �������� ������ ���
��������� � �����������������.
- 2 ENOENT �� ������ ���� ��� �������
- ��� ������ ����� �����, ���� ��� ����� ������� �
���� ������ ��� �� ������������, ������ ��� ���;
��� ���� ���� �� ���������, ��������� � ����������
�����, �� ����������.
- 3 ESRCH ��� ������ ��������
- �������, ��������������� ��������� ��������������
�������� (pid) � ��������� ������ kill(2) ���
ptrace(2), �� ����� ���� ������.
- 4 EINTR ���������� ���������� ������
- ����������� ������ (����� ��� ������ ����������
��� ������), ��������������� �������������, ������
�� ����� ���������� ���������� ������. ���� �����
��������� ������� ����� ���������� ����������
���������, �� ��������� ����� ���������� � �������.
- 5 EIO ������ �����/������
- ���������� ������ �����/������. ��� ������ �����
������ ����� ����� �� ����� ������, ������� ������� �� �������, � �������� �� ����� ���� ���������
��� ������.
- 6 ENXIO �������� ���������� ��� �����
- ����/����� � ����������� ���� ��������� �� ����������, ������� �� ����������; ��� ��������� ������
���������� ��� �����/������. ��� ������ ����� ����� ����� �����, ���� ���������� ��������� � ��������� ��������� ��� �� ���������� ����� ������.
- 7 E2BIG ������� ������ ����������
- ��� ��������� � ���������� ������ �� ���������
exec(2) ����� ������ ����������, ���������� �����
5120 ����.
- 8 ENOEXEC �������� ������ ������������ �����
- ������ ������ �� ���������� �����, �������, ���� �
����� ��������������� �����, �� ���������� � ����������� ����������� ����� [��. a.out(4)].
- 9 EBADF �������� ����� �����
- ��� ���������� ����� ��������� �� ���������� ����,
��� ������ �� ������ (�������������� ������) ������ ��� �����, ��������� ������ ��� ������ (�������������� ������).
- 10 ECHILD ��� ����������� ���������
- ��������� ����� wait(2) ��� �������� ���������, ��
������� ������������ ����������� ��������� ���
���������, ������� �� �� ��������.
- 11 EAGAIN ������� ����� ���������
- ��������� ����� fork(2) ���������� ��������, ���
��� ��������� ������� ��������� ����� ��� ������������ �� ��������� ����� ��������� ����� ��������.
- 12 ENOMEM ��������� ������������
- �� ����� ���������� ��������� ������� exec(2),
brk(2), ��� sbrk(2) ��������� ������������� �����
� ������ ������, ��� ������� ����� ��������. ���
�� ��������� �������; ������������ ������ ������������ �������� ��������� ����������. ������ ����� ����� ����� �����, ���� ����� ������ ������
������ � ����� ������� ������� ����� ����������
��������� ���, ���� ��� ������ fork(2) ������������ ����� � ������� ��������.
- 13 EACCES ��������� ���� �������
- ���� ����������� ������� �������� ������ � �����,
� ���� ��� ����� ���.
- 14 EFAULT ������������ �����
- ��������� ���������� ��� ������� ������������� ���������� ���������� ������.
- 15 ENOTBLK ��������� ������� ����������
- �� ������� ���� ������ ���, ��� �������� �������,
��������, � ������ mount(2).
- 16 EBUSY ���������� ��� ������ ������
- ���� ������� ������� ������������ ����������, ������� ��� ������������, ��� ���� ����������� ������� �������������� ����������, �� ������� ��������� �������� ���� (�������� ����, ������� �������, �������������� ���� ��� �������� ������ ������). ��� ������ ����� ����� ����� ��� �������
��������� ���� ����������, ���� �� ��� ��������.
- 17 EEXIST ���� ��� ����������
- ������������ ���� ������ � ������������ ���������,
�������� � �������� ��������� ���������� ������
link(2).
- 18 EXDEV ������ �� ������ ����������
- ���� ����������� ������� ������� ������ �� ����,
������������� �� ������ ����������.
- 19 ENODEV ������������ ����������
- ���� ����������� ������� ��������� ��������� �����, ������������ � ������ ���������, �������� ������� ������ � ����������, ��������� ������ ���
������.
- 20 ENOTDIR ��������� �������
- ��� ��� ��������� ��� ��������, ������� ����� ������; ��������, � ���������� ����� ��� � ��������
��������� ���������� ������ chdir(2).
- 21 EISDIR ������� ������ � �������
- 22 EINVAL ������������ ��������
- ������������ �������� ��������� (��������, ��������������� ����������������� ����������; ��������
��������������� ������� ��� ������ signal(2) ���
kill(2); ������ ��� ������ � ����, ��� ��������
����� lseek(2) ������ ������������� ���������).
����� ��������������� ��������������� ���������,
���������� � ������� 3M ���������� �����������.
- 23 ENFILE ����������� ������� ������
- ��������� ������� �������� ������ ����������� �
�������� �� ����� ���� �������� ��������� �����
open(2).
- 24 EMFILE ������� ����� �������� ������
- ������� ������� �� ����� ����� ������, ��� NOFILES
(�� ��������� 20) ������������ �������� ������������ ������.
- 25 ENOTTY �� ���������� ����������
- ���� ����������� ������� ��������� ��������� �����
ioctl(2) � �����, ������� �� �������� �����������
����������.
- 26 ETXTBSY ����������� ������ ������
- ���� ����������� ������� ��������� ����, ������� �
������ ������ ������ ��� ������. ��� ������ �����
����� �������� ������� ������ � ����, ����������
������������� � ������ ������ ���������.
- 27 EFBIG ������� ������� ����
- ������ ����� �������� ����������� ���������� �������� ULIMIT [��. ulimit(2)].
- 28 ENOSPC ��������� ������������ �� ����������
- ��� ������ [����������� write(2)] � ������� ����
�� ���������� �� �������� ���������� �����. ���
���������� fcntl(2) ��������� ��� ������ ���������� � ������� ����� �� ����� ���� �����������, ���
��� � ������� �� �������� ������ �����.
- 29 ESPIPE ������ ����������������
- ���������� ���������� ������ lseek(2) �������� �����.
- 30 EROFS ������������ ������ ��� ������
- ������� �������������� ���� ��� ������� �� ����������, �������������� ������ ��� ������.
- 31 EMLINK ������� ����� ������
- ���� ����������� ������� ������� ����� ��� 100
������ �� ����.
- 32 EPIPE ����� ��������
- ���� ����������� ������� �������� � �����, �� �������� �� ���� ������� �� ������ ������. ��� ����
������ ������������ ������; ���� ������ ������������, �� ������������ ������.
- 33 EDOM����� �� ������� ������� �����������
- �������� �������, ��������� � ������� 3M, �����
��� �� ������� �����������.
- 34 ERANGE ������������
- ��������� �������, ��������� � ������� 3M, ������������ � ���������� � ������ ���������.
- 35 ENOMSG ��� ��������� ������ ����
- ���� ����������� ������� �������� ��������� ����,
������� �� ���������� � ��������� ������� ��������� [��. msgop(2)].
- 36 EIDRM ������������� ������
- ��� ������ ������������ ���������, ������� ������������ ���������� ��-�� �������� ��������������
������� ���������, �������� ��� ������������ �������� �� ��������� ������� ���� [��. msgctl(2),
semctl(2), shmctl(2)].
- 37-44 ����������������� ������
- 45 EDEADLK ����� ��������� � �������
- ���� ���������� � ���������� ��������� ��������.
��� ������ ����������� ��������� ���������� ������
� �� ������.
- 46 ENOLCK ������ ����������
- ��� ���������� fcntl(2) ��������� ��� ������ ���������� ����� �� ����� ���� �����������, ��� ��� �
������� �� �������� ������ �����.
- 60 ENOSTR �� ����������������
- ������� ��������� ��������� ������ putmsg(2) �
getmsg(2) ��� ����������� �����, � ���� �� �������� �����������������.
- 62 ETIME ������� ����� ��� �������� � �����������������
- �����, ���������� �� ����� ioctl(2) ��� ����������������, �������. ������� ���� ������ ��� ������
��������� ������ - ��������, ��������� ������ ����������, ���, ���� �����, �������� ���������. ����� ����, ��� �������� ������ �������� ������������� �����. ��������� �������� ioctl(2) �����������.
- 63 ENOSR ��������� ������� ���������������
- ��� ������� ��������� ��������� ����� open(2) ���
���������������� �� ���� ��������� �������� ���
�������� ������.
- 64 ENONET ������ �� � ����
- ��� ������ �������� ������ ��� ������ � ��������
���������� ��������� ������ (���). ��� ����� �����, ����� ������������ �������� �����������, ��������, �����������, �������������� ��������� ������� � �� �����, ����� ��������� ��� �� �������� ���
���������� ��������� ��� ����������� � ����.
- 65 ENOPKG �� �� ������������
- ��� ������ ����� �����, ����� ������������ �������� ������������ ��������� �����, �� �������� � ������� ������������ �������.
- 66 EREMOTE ��������� ������
- ��� ������ �������� ������ ��� ������ � ���. ���
����� �����, ����� ������������ �������� ����������� ������, ������� �� ��������� �� ��������� ������, ��� �������� �����������/�������������� ����������, ������� ��������� �� ��������� �������.
- 67 ENOLINK ��������� �����
- ��� ������ �������� ������ ��� ������ � ���. ���
����� �����, ����� ���������� ��������� � ��������� �������, ����� � ������� � ������ ������ ���.
- 68 EADV ������ ������������
- ��� ������ �������� ������ ��� ������ � ���. ���
����� �����, ����� ������������ �������� ����������� ������, ������� ��� ����������, ��� ��������
���������� ������ ��� ��� ������ ���������������,
����� ���� ��� ������������� �������.
- 69 ESRMNT ���� ��������������
- ��� ������ �������� ������ ��� ������ � ���. ���
����� �����, ����� ������������ �������� ���������� ������ ��� � �� �����, ����� ���� ��� �������, �������������� � ��������� �������.
- 70 ECOMM ������ �����
- ��� ������ �������� ������ ��� ������ � ���. ���
����� �����, ����� ������������ �������� �������
��������� �� ��������� ������, ����� � ������� �
������ ������ ���.
- 71 EPROTO ������ ���������
- ���������� �����-���� ������ ���������. ��� ������
���������� ��� ��������� ���������, �� �� ��������
���� ������������.
- 74 EMULTIHOP ��� ������ �����
- ��� ������ �������� ������ ��� ������ � ���. ���
����� �����, ����� ������������ �������� ��������
������ � ��������� ��������, ������� �������� ����������.
- 77 EBADMSG ������������ ���������
- ��� ���������� ��������� ������� read(2),
getmsg(2) ��� ������ ioctl(2) ��� ��������������,
� ���������� I_RECVFD, � ������ ������� ���������
�����, ��� �� ����� ���� ����������. ��� ������
- ������� �� ���������� ������:
read(2) ����������� ���������� ��� ���������� ���������� �����.
getmsg(2) ���������� ���������� �����.
ioctl(2) ����������� ���������� ��� ������.
- 83 ELIBACC ��� ������� � ����������� ����������
- ������� ��������� ����� exec(2) ��� ����� a.out,
������� ��������� �� ����������� ����������, �
���������� �� ���������� ��� � ������������ ��
������� ���� ��� �� �������������.
- 84 ELIBBAD ����������� ����������� ����������
- ������� ��������� ����� exec(2) ��� ����� a.out,
������� ��������� �� ����������� ����������, �
exec(2) �� ����� ��������� ��� ����������. ��������, ��������� ����������� ���������� ��������.
- 85 ELIBSCN ����������� ������ ���������
- ������� ��������� ����� exec(2) ��� ����� a.out,
������� ��������� �� ����������� ����������, � �
������ ��������� (.lib) ����� a.out ��������� �������� ������. � ������ ��������� �������� �������� ��� exec(2) � ���, ����� ����������� ���������� ���������. ��������, ��������� ����� a.out ��������.
- 86 ELIBMAX ����� ������ �� ����������� ����������
- ������� ��������� ����� exec(2) ��� ����� a.out,
������� ���������� ������ ����������� ���������,
��� ��������� � ������ ������������ �������.
- 87 ELIBEXEC ����������� ����������� ����������
- ������� ��������� ����� exec(2) ���������������
��� ����������� ����������, ��� ���������.
�����������
������������� �������� (pid). ������ �������� ������� �
������� ����� ���������� ����� (������������� �����
�����) ���������� ��������������� ��������. ��������
����� �������������� ����� � �������� �� 0 �� 30000.
������������� ������������� �������� (ppid). ����� ������� ������ �������� � ������ ������ ��������� [��.
fork(2)], ������� ���������� ������������.
������������� ������ ���������. ������ �������� �������
�������� ������ ������ ���������, ������� ���������������� ������������� ����� ������, ���������� ��������������� ������ ���������. ���� ��������������� ��������
������������� ������ ������. ����������� ��������� ��������� �������� ������� ����� ���������������� ���������� [��. kill(2)].
������������� ������ ���������. ������ �������� �������
����� ���� ������ ������ ���������, ������� ���������������� ������������� ����� ������, ���������� ��������������� ������ ���������. ���� ������ ������������� ������������ ��� �������������� ������ ���������������
��������� ��� �������������� ������ �� ��������� ������
[��. exit(2) � signal(2)].
�������� ������������� ������������ � �������� ������������� ������. ������ ������������, ��������� �������,
���������������� ������������� ����� ������ (�� 0 ��
65535), ���������� �������� ��������������� ������������.
������ ������������ �������� ����� ������ �����-����
������. ������ ����� ���������������� ������������� ����� ������, ���������� �������� ��������������� ������.
�������� ������� ����� �������� ������������� ������������ � �������� ������������� ������, ������� ��������������� ������� ��������� �������������� ������������
� ��������� �������������� ������ ���� ������������,
��� �������� ������ �������.
����������� ������������� ������������ �������� � ����������� ������������� ������ ��������. �������� ������� ����� ����������� ������������� ������������ �
����������� ������������� ������, ������� ������������
��� ����������� ���� ������� � ������ (��. ����). ����������� ������������� ������������ � ����������� ������������� ������ ������ ����� ��������� ��������������
������������ � ��������� �������������� ������, ����
������ ��� ������� ��� ���� �� ��� ������� �� ��� ������� �� �����, �������� ������������� ��� ���������� ������������� �������������� ������������ ��� ������ [��.
exec(2)].
�����������������. ������� ��������������� ��� ��������������������� � ����� ����������� ����������, ��������, ��� ����� ������� � ������ �����, ���� ��� ����������� ������������� ������������ ���� 0.
����������� ��������. ��������, ������� ��������������
�������� 0 � 1, �������� ������������; � ���������� ���
���������� proc0 � proc1.
Proc0 - ��� �����������. Proc1 - ������� �������������
������ (init). Proc1 �������� ������� ������ �������
�������� � ������� � ������������ ��� �������� ��
���������� ���������.
���������� �����. ���������� ����� ���� ��������� �����
�����, ������������ ��� �������� �����/������ � ����;
�� ����� ��������� �������� �� 0 �� (NOFILES - 1), ������� ������� �� ����� ����� ������������ ��������� ����� ��� NOFILES ������������ ������. ���������� �����
������������ ������ ���������� ��������, ��� open(2)
��� pipe(2) � ������������ ��� �������� � ��������� �������, �������� read(2), write(2), ioctl(2) � close(2).
��� �����. ���, ���������� �� 1 �� 14 ��������, �����
�������������� � �������� ����� �������� �����, ������������ ����� ��� ��������.
��� ������� ����� ���� ������ ���������� ��������� ��
������ �������� ASCII, ����� �������� \0 (null) � /.
�� ������������� ������������ � ������ ������ �������
*, ?, [ ��� ], ��� ��� shell �������� �� ������ �������
[��. sh(1)]. ���� ��� � ���������, �� �� �������������
������������ � ������ ������ ����������� �������.
���������� ��� � �������. ���������� ��� ���� �������
��������, ��������������� ������� ������, �, ��������,
������������ � ������� /, �� ������� ������� ���� ���
����� ���� ���������, ����������� ��������� /, � �����
(��������������) ��� �����.
���� ���������� ��� ���������� � ������� /, �� �������
���������� � ��������� ��������. �����, ������� ���������� � �������� �������� ��������.
��������� ������ / ���������� �������� �������.
���� �� ��������� ���������, ������ ���������� ���
��������������� ��� ��� ��������������� �����.
�������. �������� �������� ���������� �������� ��
����. ����� ������� �������� �� ������� ���� ��� ������: . � .., �����������, ��������������, �� ��� �������
� �� ����������� ������� (����������).
�������� ������� � ������� ������� �������. ������ ������� ����� ��������������� � ��� �������� ������� � ������� ������� �������, ��� ����, ����� ����������, ���
������������ ����� �� ��������. �������� ������� �������� �� ������ ��������� � �������� ��������� ��������
�������� �������.
����� ������� � �����. �������� ��������������� �����
�� ������, ������ � ����������/�������� �����, ���� ������� ���� �� ���� �� ��������� �������:
- ����������� ������������� ������������ ��������
���� ������������� �����������������.
- ����������� ������������� ������������ ��������
��������� � ��������������� ��������� ����� � ��������������� ���� ��� ��������� � ������ �������
� ����� (0700) ����� 1.
- ����������� ������������� ������������ �������� ��
��������� � ��������������� ��������� �����, ��
����������� ������������� ������ �������� ��������� � ��������������� ������ �����, � ��������������� ���� ��� ������ � ������ ������� � �����
(0070) ����� 1.
- ����������� ������������� ������������ �������� ��
��������� � ��������������� ��������� ����� � ����������� ������������� ������ �������� �� ��������� � ��������������� ������ �����, �� ��������������� ���� ��� ������ ������������� � ������ ������� � ����� (0007) ����� 1.
���� ��� ������������� ������� �����, ���� �� ��������������� �������� � ������ � �������� ���.
������������� ������� ���������. ������������� �������
��������� (msqid) ���� ���������� ������������� �����
�����, ������������ ��������� ������� msgget(2). � ������ ����� ��������������� ������������� ������� ��������� � ��������� ������. ��������� ������, ������������
msqid_ds, �������� ��������� ����������:
struct ipc_perm msg_perm; /* ��������� ���� �� ���������� �������� */
struct msg *msg_first; /* ��������� �� ������ ��������� � ������� */
struct msg *msg_last; /* ��������� �� ��������� ��������� */
ushort msg_cbytes;/* ������� ����� ���� � ������� */
ushort msg_qnum; /* ����� ��������� � ������� */
ushort msg_qbytes;/* ����. ���������� ����� ���� � ������� */
ushort msg_lspid; /* ������������� ���������� ����������� */
ushort msg_lrpid; /* ������������� ���������� ���������� */
time_t msg_stime; /* ����� �������. ����������� */
time_t msg_rtime; /* ����� ���������� ��������� */
time_t msg_ctime; /* ����� ���������� ��������� */
- msg_perm
- ��������� ���� ipc_perm, ������� ���������� �����
�� �������� � ����������� (��. ����). ��� ��������� �������� ��������� ��������:
ushort cuid; /* ������������� ������������, ���������� ������� */
ushort cgid; /* ������������� ������ ��������� ������� */
ushort uid; /* ������������� ������������ */
ushort gid; /* ������������� ������ */
ushort mode; /* ����� �� ������/������ */
ushort seq; /* ������������������ ������� ������������ ������ */
key_t key; /* ���� */
- msg_first
- ��������� �� ������ ��������� � �������.
- msg_last
- ��������� �� ��������� ��������� � �������.
- msg_cbytes
- ������� ���������� ���� � �������.
- msg_qnum
- ������� ���������� ��������� � �������.
- msg_qbytes
- ����������� ���������� ���������� ���� � �������.
- msg_lspid
- ������������� ��������, ������� ��������� ��������
�������� msgsnd [��. msgop(2)].
- msg_lrpid
- ������������� ��������, ������� ��������� ��������
�������� msgrcv [��. msgop(2)].
- msg_stime
- ����� ���������� ��������� �������� msgsnd.
- msg_rtime
- ����� ���������� ��������� �������� msgrcv.
- msg_ctime
- ����� ���������� ��������� �������� msgctl(2), ������� �������� �����-���� ������� �������������
���������.
����� ���������� � ��������, ������� � 00:00:00 1 ������ 1970 ���� (�� ��������).
����� �� �������� � �����������. � �������� ���������
������� msgop(2) � msgctl(2) �����, ��������� ��� ��������, �������� � �������� ������� { � }. ����� �������
� ���������:
00400 | ������ ��� ���������. |
00200 | ������ ��� ���������. |
00040 | ������ ��� ������. |
00020 | ������ ��� ������. |
00004 | ������ ��� ���������. |
00002 | ������ ��� ���������. |
�������� ��������������� ����� �� ������ � ������ ��
�������������� �������, ���� ������� ���� �� ���� ��
��������� �������:
- ����������� ������������� ������������ ��������
���� ������������� �����������������.
- ����������� ������������� ������������ ��������
��������� �� ��������� ���������� msg_perm.cuid
��� msg_perm.uid ��������� ������, ���������������
� ��������������� �������, � ��������������� ����
��� ��������� � msg_perm.mode (0600) ����� 1.
- ����������� ������������� ������ �������� ��������� �� ��������� ���������� msg_perm.cgid ���
msg_perm.gid ��������� ������, ��������������� �
��������������� �������, � ��������������� ����
��� ������ � msg_perm.mode (0060) ����� 1.
- ��������������� ���� ��� ������ ������������� �
msg_perm.mode (0006) ����� 1.
���� ��� ������������� ������� �����, ���� �� ��������������� �������� � ����������� � �������� ���.
������������� ��������� ���������. ������������� ��������� ��������� (semid) ���� ���������� �������������
����� �����, ������������ ��������� ������� semget(2).
� ������ ����� ��������������� ������������� ���������
��������� � ��������� ������. ��������� ������, ������������ semid_ds, �������� ��������� ����������:
struct ipc_perm sem_perm; /* ��������� ���� �� ���������� �������� */
struct sem *sem_base; /* ��������� �� ������ ������� � ��������� */
ushort sem_nsems; /* ���������� ��������� � ��������� */
time_t sem_otime; /* ����� ��������� �������� */
time_t sem_ctime; /* ����� ���������� ��������� */
- sem_perm
- ��������� ���� ipc_perm, ������� ���������� �����
�� �������� � ���������� (��. ����). ��� ���������
�������� ��������� ��������:
ushort cuid; /* ������������� ������������, ���������� ��������� ��������� */
ushort cgid; /* ������������� ������ ��������� ��������� ��������� */
ushort uid; /* ������������� ������������ */
ushort gid; /* ������������� ������ */
ushort mode; /* ����� �� ������/��������� */
ushort seq; /* ������������������ ������� ������������ ������ */
key_t key; /* ���� */
- sem_base
- ��������� �� ������ ������� � ��������� (��. ����).
- sem_nsems
- ���������� ��������� � ���������. ������ ������� �
��������� ����� ����� ������������� �����, ���������� sem_num, � ��������� ���������������� �������� �� 0 �� (sem_nsems - 1).
- sem_otime
- ����� ��������� �������� semop(2).
- sem_ctime
- ����� ��������� �������� semctl(2), ������� �������� �����-���� ������� ������������� ���������.
����� ���������� � ��������, ������� � 00:00:00 1 ������ 1970 ���� (�� ��������).
������� - ��� ���������, ���������� ��������� ��������:
ushort semval; /* �������� �������� */
short sempid; /* ������������� ��������, ������������ ��������� �������� */
ushort semncnt; /* ����� ���������, ��������� ���������� �������� �������� */
ushort semzcnt; /* ����� ���������, ��������� ��������� �������� �������� */
- semval
- ��������������� ����� �����, ���������� ���������
��������.
- sempid
- ������������� ��������, ������� ��������� ��������
�����-���� �������� � ������ ���������.
- semncnt
- ������� ����� ���������, ���������, ����� ��������
������� �������� ������ ������ ��� �������� ��������.
- semzcnt
- ������� ����� ���������, ���������, ����� ��������
������� �������� ������ ������ ����.
����� �� �������� � ����������. � �������� ���������
������� semop(2) � semctl(2) �����, ��������� ��� ��������, �������� � �������� ������� { � }. ����� �������
� ���������:
00400 | ������ ��� ���������. |
00200 | ��������� ��� ���������. |
00040 | ������ ��� ������. |
00020 | ��������� ��� ������. |
00004 | ������ ��� ���������. |
00002 | ��������� ��� ���������. |
�������� ��������������� ����� �� ������ � ���������
�������� ��������� �� �������������� ���������, ����
������� ���� �� ���� �� ��������� �������:
- ����������� ������������� ������������ ��������
���� ������������� �����������������.
- ����������� ������������� ������������ ��������
��������� �� ��������� ���������� sem_perm.cuid
��� sem_perm.uid ��������� ������, ���������������
� ��������������� ��������� ���������, � ��������������� ���� ��� ��������� � sem_perm.mode
(0600) ����� 1.
- ����������� ������������� ������ �������� ��������� �� ��������� ���������� sem_perm.cgid ���
sem_perm.gid ��������� ������, ��������������� �
��������������� ��������� ���������, � ��������������� ���� ��� ������ � sem_perm.mode (0060) ����� 1.
- ��������������� ���� ��� ������ ������������� �
sem_perm.mode (0006) ����� 1.
���� ��� ������������� ������� �����, ���� �� ��������������� �������� � ���������� � �������� ���.
������������� ������������ �������� ������. ������������� ������������ �������� ������ (shmid) ���� ���������� ������������� ����� �����, ������������ ���������
������� shmget(2). � ������ ����� ��������������� ������������ ������� ������ (���������� ����������� ���������) � ��������� ������. �������, ��� ����������� ������� ������ ������ ���� ���� ������ ������������� �����
����, ��� ������� ��������� ������ �� �������. ��������� ������, ������������ shmid_ds, �������� ���������
����������:
struct ipc_perm shm_perm; /* ��������� ���� �� ���������� �������� */
int shm_segsz; /* ������ �������� */
struct region *shm_reg; /* ��������� �� ��������� ������� ������ */
char pad[4]; /* ���������� ��� �������� */
ushort shm_lpid; /* ������������� ��������, ���. ��������� �������� */
ushort shm_cpid; /* ������������� ��������, ���������� ������� */
ushort shm_nattch;/* ����� ���������, �������������� ������� */
ushort shm_cnattch; /* ��� shminfo */
time_t shm_atime; /* ����� ���������� ������������� */
time_t shm_dtime; /* ����� ���������� ������������ */
time_t shm_ctime; /* ����� ���������� ��������� */
- shm_perm
- ��������� ���� ipc_perm, ������� ���������� �����
�� �������� � ������������ ���������� (��. ����).
��� ��������� �������� ��������� ��������:
ushort cuid; /* ������������� ������������, ���������� ������� */
ushort cgid; /* ������������� ������ ��������� �������� */
ushort uid; /* ������������� ������������ */
ushort gid; /* ������������� ������ */
ushort mode; /* ����� �� ������/��������� */
ushort seq; /* ������������������ ������� ������������ ������ */
key_t key; /* ���� */
- shm_segsz
- ������ ������������ �������� ������ � ������.
- shm_lpid
- ������������� ��������, ��������� ������������
�������� shmop(2).
- shm_cpid
- ������������� ��������, ���������� �������������
������������ �������� ������.
- shm_nattch
- ������� ���������� ���������, � ������� � ������
������ ����������� ����������� ������� ������.
- shm_atime
- ����� ��������� �������� shmat(2).
- shm_dtime
- ����� ��������� �������� shmdt(2).
- shm_ctime
- ����� ��������� �������� shmctl(2), ������� �������� �����-���� ������� ������������� ���������.
����� ���������� � ��������, ������� � 00:00:00 1 ������ 1970 ���� (�� ��������).
����� �� �������� � ������������ ���������� ������. �
�������� ��������� ������� shmop(2) � shmctl(2) �����,
��������� ��� ��������, �������� � �������� ������� { �
}. ����� ������� � ���������:
00400 | ������ ��� ���������. |
00200 | ������ ��� ���������. |
00040 | ������ ��� ������. |
00020 | ������ ��� ������. |
00004 | ������ ��� ���������. |
00002 | ������ ��� ���������. |
�������� ��������������� ����� �� ������ ��� ������ �
����������� ������� ������, ���� ������� ���� �� ����
�� ��������� �������:
- ����������� ������������� ������������ ��������
���� ������������� �����������������.
- ����������� ������������� ������������ ��������
��������� �� ��������� ���������� shm_perm.cuid
��� shm_perm.uid ��������� ������, ���������������
� ��������������� ������������ ��������, � ��������������� ���� ��� ��������� � shm_perm.mode
(0600) ����� 1.
- ����������� ������������� ������ �������� ��������� �� ��������� ���������� shm_perm.cgid ���
shm_perm.gid ��������� ������, ��������������� �
��������������� ������������ ��������, � ��������������� ���� ��� ������ � shm_perm.mode (0060)
����� 1.
- ��������������� ���� ��� ������ ������������� �
shm_perm.mode (0006) ����� 1.
���� ��� ������������� ������� �����, ���� �� ��������������� �������� � ����������� ��������� ������ �
�������� ���.
����������������. ����� ���������� ���� ������������
������� UNIX, �������������� �������� ������� ����� �
���������������� ���������, ���������� ���������� ���������������. �� ���������� �������� ���������� ��� ������������� �����/������ ������ ���� � ����� ����� �
����������������� ����������. �������� ���������������
������� �� ������, ������� ���� � ������ �������� ������.
�����. ����� - ��� ��������������� ����� ������ ������
����, ����������� ���������������� ������� � ���������.
��������� ������������ ������ �������� �����, ������� �
���� ��� ����� ������� ����� ������� � ���������. �����
���������� ������ � shell'�, �� ����������� ����, ���
������ � ������ ������������ � �������������� � �����
������������.
�����. ����� - ��� ��������� ������, ������� ������������ ��������� ����� ������� � ���������������� ���������. �������� ������� ������ ������� � ��������� ��������� �������, ����������� � �����������������, � �
�������� ������ ����� ���������������� ��������� � �������.
�������. � ������ ������� ������������ ��������� �����
������������ ������������� � �������. ������� �����
���� � ���������������, ����� ��� ������������� ���
������� ������ [��. log(7)], ������� �� ������� � �������� �����������.
������. ������ - ��� ��������� ������, ���������� ��������� ��������� ������� � �������� ������. �� ������
������������� � �������� ������, ����� ������� � ���������. ��� ��������������� ������ ������ �� �� ����,
��� � ������� � ��������� shell'�, � ��� ������������
��������, ��� ������ �������� ���� �������, �����������
���������� ���������� (� ������������) ������ � ����
������������ - ���� � �����.
����. � ������ - ����������� �� ������ � ��������.
�����. � ������ - ����������� �� �������� � ������.
���������. � ������ ��������� - ��� ���� ��� ����� ������ ������ ������ � ������������ ����������� ����������������. ���������� ��������� ����� ���������; ���
�������������� ���������� ���������. �������� ���������
- ������������ ������ �������� ������ � ������.
������� ���������. � ������ ������� ��������� - ���
������ ���������, ��������� ��������� ������� ��� ���������.
������� ������. � ������ ������� ������ - ��� �������
���������, ������������ �����.
������� ������. � ������ ������� ������ - ��� �������
���������, ������������ ����.
�������������. ������������� - ��� �������, �����������
�������, ��������������� � ����������� ����������������� ����������, �������������� � ������ �������� ��� ��
���������� ��������� �������������� � ������ ����������������� ��������. �������� ��������������� �� ������������� ������������� �������������, �� �������� ���
����������� �������� ��� �������� ��������������� �
���������� �������������������� �������.
����������
����������, ����������� � ������� ���������� ���������
������ (���), ������� ��������� �� ��������, ������ ���� �� ����� ��������� ���� ��������������� ���������� �
����������� �����������; � ����������� ������������ ���
�� ������.
��. �����
intro(3).