Server for Information Technologies ������ ��������������
������� �������������� ����������
(095) 932-9212, 932-9213, 939-0783
E-mail: [email protected]
������ �������� ����(!) ������������� ���������� 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, � ������ ������� ��������� �����, ��� �� ����� ���� ����������. ��� ������ - ������� �� ���������� ������:
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)]. ���� ��� � ���������, �� �� ������������� ������������ � ������ ������ ����������� �������.

���������� ��� � �������. ���������� ��� ���� ������� ��������, ��������������� ������� ������, �, ��������, ������������ � ������� /, �� ������� ������� ���� ��� ����� ���� ���������, ����������� ��������� /, � ����� (��������������) ��� �����.

���� ���������� ��� ���������� � ������� /, �� ������� ���������� � ��������� ��������. �����, ������� ���������� � �������� �������� ��������.

��������� ������ / ���������� �������� �������.

���� �� ��������� ���������, ������ ���������� ��� ��������������� ��� ��� ��������������� �����.

�������. �������� �������� ���������� �������� �� ����. ����� ������� �������� �� ������� ���� ��� ������: . � .., �����������, ��������������, �� ��� ������� � �� ����������� ������� (����������).

�������� ������� � ������� ������� �������. ������ ������� ����� ��������������� � ��� �������� ������� � ������� ������� �������, ��� ����, ����� ����������, ��� ������������ ����� �� ��������. �������� ������� �������� �� ������ ��������� � �������� ��������� �������� �������� �������.

����� ������� � �����. �������� ��������������� ����� �� ������, ������ � ����������/�������� �����, ���� ������� ���� �� ���� �� ��������� �������:

  1. ����������� ������������� ������������ �������� ���� ������������� �����������������.
  2. ����������� ������������� ������������ �������� ��������� � ��������������� ��������� ����� � ��������������� ���� ��� ��������� � ������ ������� � ����� (0700) ����� 1.
  3. ����������� ������������� ������������ �������� �� ��������� � ��������������� ��������� �����, �� ����������� ������������� ������ �������� ��������� � ��������������� ������ �����, � ��������������� ���� ��� ������ � ������ ������� � ����� (0070) ����� 1.
  4. ����������� ������������� ������������ �������� �� ��������� � ��������������� ��������� ����� � ����������� ������������� ������ �������� �� ��������� � ��������������� ������ �����, �� ��������������� ���� ��� ������ ������������� � ������ ������� � ����� (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������ ��� ���������.

�������� ��������������� ����� �� ������ � ������ �� �������������� �������, ���� ������� ���� �� ���� �� ��������� �������:

  1. ����������� ������������� ������������ �������� ���� ������������� �����������������.
  2. ����������� ������������� ������������ �������� ��������� �� ��������� ���������� msg_perm.cuid ��� msg_perm.uid ��������� ������, ��������������� � ��������������� �������, � ��������������� ���� ��� ��������� � msg_perm.mode (0600) ����� 1.
  3. ����������� ������������� ������ �������� ��������� �� ��������� ���������� msg_perm.cgid ��� msg_perm.gid ��������� ������, ��������������� � ��������������� �������, � ��������������� ���� ��� ������ � msg_perm.mode (0060) ����� 1.
  4. ��������������� ���� ��� ������ ������������� � 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��������� ��� ���������.

�������� ��������������� ����� �� ������ � ��������� �������� ��������� �� �������������� ���������, ���� ������� ���� �� ���� �� ��������� �������:

  1. ����������� ������������� ������������ �������� ���� ������������� �����������������.
  2. ����������� ������������� ������������ �������� ��������� �� ��������� ���������� sem_perm.cuid ��� sem_perm.uid ��������� ������, ��������������� � ��������������� ��������� ���������, � ��������������� ���� ��� ��������� � sem_perm.mode (0600) ����� 1.
  3. ����������� ������������� ������ �������� ��������� �� ��������� ���������� sem_perm.cgid ��� sem_perm.gid ��������� ������, ��������������� � ��������������� ��������� ���������, � ��������������� ���� ��� ������ � sem_perm.mode (0060) ����� 1.
  4. ��������������� ���� ��� ������ ������������� � 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������ ��� ���������.

�������� ��������������� ����� �� ������ ��� ������ � ����������� ������� ������, ���� ������� ���� �� ���� �� ��������� �������:

  1. ����������� ������������� ������������ �������� ���� ������������� �����������������.
  2. ����������� ������������� ������������ �������� ��������� �� ��������� ���������� shm_perm.cuid ��� shm_perm.uid ��������� ������, ��������������� � ��������������� ������������ ��������, � ��������������� ���� ��� ��������� � shm_perm.mode (0600) ����� 1.
  3. ����������� ������������� ������ �������� ��������� �� ��������� ���������� shm_perm.cgid ��� shm_perm.gid ��������� ������, ��������������� � ��������������� ������������ ��������, � ��������������� ���� ��� ������ � shm_perm.mode (0060) ����� 1.
  4. ��������������� ���� ��� ������ ������������� � shm_perm.mode (0006) ����� 1.

���� ��� ������������� ������� �����, ���� �� ��������������� �������� � ����������� ��������� ������ � �������� ���.

����������������. ����� ���������� ���� ������������ ������� UNIX, �������������� �������� ������� ����� � ���������������� ���������, ���������� ���������� ���������������. �� ���������� �������� ���������� ��� ������������� �����/������ ������ ���� � ����� ����� � ����������������� ����������. �������� ��������������� ������� �� ������, ������� ���� � ������ �������� ������.

�����. ����� - ��� ��������������� ����� ������ ������ ����, ����������� ���������������� ������� � ���������. ��������� ������������ ������ �������� �����, ������� � ���� ��� ����� ������� ����� ������� � ���������. ����� ���������� ������ � shell'�, �� ����������� ����, ��� ������ � ������ ������������ � �������������� � ����� ������������.

�����. ����� - ��� ��������� ������, ������� ������������ ��������� ����� ������� � ���������������� ���������. �������� ������� ������ ������� � ��������� ��������� �������, ����������� � �����������������, � � �������� ������ ����� ���������������� ��������� � �������.

�������. � ������ ������� ������������ ��������� ����� ������������ ������������� � �������. ������� ����� ���� � ���������������, ����� ��� ������������� ��� ������� ������ [��. log(7)], ������� �� ������� � �������� �����������.

������. ������ - ��� ��������� ������, ���������� ��������� ��������� ������� � �������� ������. �� ������ ������������� � �������� ������, ����� ������� � ���������. ��� ��������������� ������ ������ �� �� ����, ��� � ������� � ��������� shell'�, � ��� ������������ ��������, ��� ������ �������� ���� �������, ����������� ���������� ���������� (� ������������) ������ � ���� ������������ - ���� � �����.

����. � ������ - ����������� �� ������ � ��������.

�����. � ������ - ����������� �� �������� � ������.

���������. � ������ ��������� - ��� ���� ��� ����� ������ ������ ������ � ������������ ����������� ����������������. ���������� ��������� ����� ���������; ��� �������������� ���������� ���������. �������� ��������� - ������������ ������ �������� ������ � ������.

������� ���������. � ������ ������� ��������� - ��� ������ ���������, ��������� ��������� ������� ��� ���������.

������� ������. � ������ ������� ������ - ��� ������� ���������, ������������ �����.

������� ������. � ������ ������� ������ - ��� ������� ���������, ������������ ����.

�������������. ������������� - ��� �������, ����������� �������, ��������������� � ����������� ����������������� ����������, �������������� � ������ �������� ��� �� ���������� ��������� �������������� � ������ ����������������� ��������. �������� ��������������� �� ������������� ������������� �������������, �� �������� ��� ����������� �������� ��� �������� ��������������� � ���������� �������������������� �������.

����������
����������, ����������� � ������� ���������� ��������� ������ (���), ������� ��������� �� ��������, ������ ���� �� ����� ��������� ���� ��������������� ���������� � ����������� �����������; � ����������� ������������ ��� �� ������.

��. �����
intro(3).
Comments: [email protected]
Designed by Andrey Novikov
Copyright © CIT