������ �������� ����(!) ������������� ����������
|
CIT Forum CD-ROM
|
|
SHMCTL(2)
��������
shmctl - �������� ���������� ������������ ���������� ������
���������
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int shmctl (shmid, cmd, buf)
int shmid, cmd;
struct shmid_ds *buf;
��������
��������� ����� shmctl ��������� ��������� �������� ���������� ������������ ���������� ������. �������� ������������ ��������� ��������� cmd, ������� ������ ����
����� �� ���������:
- IPC_STAT
- ��������� ������� �������� ����� ��������� ������,
��������������� � ��������������� ������������
�������� shmid, � ���������, �� ������� ���������
�������� buf. ���������� ��������� ������� �
intro(2). {��������� ����� �� ������.}
- IPC_SET
- ��������� ��������� ����� ��������� ������, ��������������� � ��������������� shmid, ��������������� ��������, ����������� � ���������, �� �������
��������� �������� buf:
shm_perm.uid
shm_perm.gid
shm_perm.mode /* ������ ������� 9 ��� */
��� ������� ����� ����������� ������ ���������,
������� ����� ����������� ������������� ������������, ������ ���� �������������� �����������������, ���� �������� ���� shm_perm.cuid ���
shm_perm.uid � ���������, ��������������� � ��������������� shmid.
- IPC_RMID
- ������� �� ������� ������������� ������������ ��������, �������� ���������� shmid, �������������
������� � ��������������� � ��� ��������� ������.
��� ������� ����� ����������� ������ ���������,
������� ����� ����������� ������������� ������������, ������ ���� �������������� �����������������, ���� �������� ���� shm_perm.cuid ���
shm_perm.uid � ��������� ������, ��������������� �
��������������� shmid.
- SHM_LOCK
- �������� � ������ ����������� �������, ����������������� ��������������� shmid. ��� ������� �����
����������� ������ ���������, ������� ����� ����������� ������������� ������������, ������ �������������� �����������������.
- SHM_UNLOCK
- ���������� ����������� ������� ������, ����������������� ��������������� shmid. ��� ������� �����
����������� ������ ���������, ������� ����� ����������� ������������� ������������, ������ �������������� �����������������.
��������� ����� shmctl ����������� ��������, ���� ��������� ���� �� ���� �� ��������� �������:
- [EINVAL]
- �������� ��������� shmid �� �������� ���������� ��������������� ������������ ��������.
- [EINVAL]
- ������������ �������� ��������� cmd, ������������ �������.
- [EACCES]
- �������� ��������� cmd ����� IPC_STAT, �� �
����������� �������� ��� ���� �� ����������
�������� ������ [��. intro(2)].
- [EPERM]
- �������� ��������� cmd ����� IPC_RMID ���
IPC_SET, � ����������� ������������� ������������ ����������� �������� �� ����� ��
�������������� �����������������, �� �������� ���� shm_perm.cuid ��� shm_perm.uid �
��������� ������, ��������������� � ��������������� shmid.
- [EPERM]
- �������� ��������� cmd ����� SHM_LOCK ���
SHM_UNLOCK, � ����������� �������������
������������ ����������� �������� �� �����
�������������� �����������������.
- [EFAULT]
- �������� buf ��������� �� ������� ����������� �������� ��������� ������������.
- [ENOMEM]
- �������� ��������� cmd ����� SHM_LOCK � ���
������������ �� ��� ������ � �������.
��. �����
shmget(2), shmop(2).
�����������
��� �������� ���������� ��������� ����� 0; � ������
������ ������������ -1, � ���������� errno ������������� ��� ������.
����������
���������� ���� ������� ����������� ������� ������ ����� ����, ��� ��������� ��������� ������ �� ����.