������ �������� ����(!) ������������� ����������
|
CIT Forum CD-ROM
|
|
MSGCTL(2) MSGCTL(2)
��������
msgctl - �������� ���������� �������� ���������
���������
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
int msgctl (msqid, cmd, buf)
int msqid, cmd;
struct msqid_ds *buf;
��������
��������� ����� msgctl ��������� ��������� �������� ���������� �������� ���������. �������� ������������ ��������� ��������� cmd, ������� ������ ���� ����� �� ���������:
- IPC_STAT
- ��������� ������� �������� ������� ���� ���������
������, ��������������� � ��������������� �������
��������� msqid, � ���������, �� ������� ���������
buf. ���������� ��������� ������� � intro(2).
{��������� ����� �� ������.}
- IPC_SET
- ��������� ��������� ����� ��������� ������, ��������������� � ��������������� msqid, ��������������� ��������, ����������� � ���������, �� �������
��������� buf:
msg_perm.uid
msg_perm.gid
msg_perm.mode /* ������ ������� 9 ��� */
msg_qbytes
��� �������� ����� ����������� ������ ���������,
����������� ������������� ������������ ��������
����� ���� �������������� �����������������, ����
�������� ���� msg_perm.cuid ��� msg_perm.uid �
��������� ������, ��������������� � msqid. ������
����������������� ����� ����������� �������� ����
msg_qbytes.
- IPC_RMID
- ������� �� ������� ������������� ������� ���������, ������������ ��������� msqid, �������������
������� ��������� � ��������������� � ��� ��������� ������. ��� ������� ����� ����������� ������
���������, ������� ����� ����������� �������������
������������, ������ ���� �������������� �����������������, ���� �������� ���� msg_perm.cuid ���
msg_perm.uid � ��������� ������, ��������������� �
msqid.
��������� ����� msgctl ����������� ��������, ���� ��������� ���� �� ���� �� ��������� �������:
- [EINVAL]
- �������� ��������� msgid �� �������� ���������� ��������������� ������� ���������.
- [EINVAL]
- ������������ �������� ��������� cmd, ������������ ����������� ��������.
- [EACCES]
- �������� ��������� cmd ����� IPC_STAT � ���
���� �� ������ � ����������� ��������
- [��.
intro(2)].
- [EPERM]
- �������� ��������� cmd ����� IPC_RMID ���
IPC_SET � ����������� ������������� ������������ ����������� �������� �� ����� ��
�������������� �����������������, �� �������� ���� msg_perm.cuid ��� msg_perm.uid �
��������� ������, ��������������� � msqid.
- [EPERM]
- �������� ��������� cmd ����� IPC_SET � ����
����������� ������� ��������� �������� ����
msg_qbytes, � ����������� �������������
������������ ����������� �������� �� �����
�������������� �����������������.
- [EFAULT]
- �������� buf ��������� �� ������� ����������� �������� ��������� ������������.
��. �����
intro(2), msgget(2), msgop(2).
�����������
��� �������� ���������� ��������� ����� 0; � ������
������ ������������ -1, � ���������� errno ������������� ��� ������.