������ �������� ����(!) ������������� ����������
|
CIT Forum CD-ROM
|
|
SEMGET(2)
��������
semget - ��������� �������������� ��������� ���������
���������
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
int semget (key, nsems, semflg)
key_t key;
int nsems, semflg;
��������
��������� ����� semget ���������� ������������� ��������� ���������, ��������������� � ������ key.
������������� � ��������������� � ��� ��������� ������
� ��������� �� nsems ��������� [��. intro(2)] ���������
��� ����� key � ��������� �������:
- �������� ��������� key ����� IPC_PRIVATE.
- ���� key ��� �� ����� ���������������� � ��� �������������� ��������� ��������� � ��������� (semflg
& IPC_CREAT) �������.
��� �������� ��������� ������, ��������������� � �����
��������������� ��������� ���������, ����������� ��������� ���������������� ��������:
- �������� ����� sem_perm.cuid, sem_perm.uid,
sem_perm.cgid � sem_perm.gid ��������������� ������� ������������ �������������� ������������ �,
��������������, ������������ �������������� ������
����������� ��������.
- ������� 9 ��� ���� sem_perm.mode ���������������
������� 9 ������� ����� ��������� semflg.
- �������� ���� sem_nsems ��������������� ������
�������� ��������� nsems.
- �������� ���� sem_otime ��������������� ������ 0 �
�������� ���� sem_ctime ��������������� ������ �������� �������.
��������� ����� semget ����������� ��������, ���� ��������� ���� �� ���� �� ��������� �������:
- [EINVAL]
- �������� ��������� nsems ������ ��� �����
0, ��� ������ ����������� ����������� �
�������.
- [EACCES]
- ��� ����� key ��� ���������� �������������
��������� ���������, �� �� ����� ���� ������������� ����� ������� [��. intro(2)],
������������ � 9 ������� ����� ���������
semflg.
- [EINVAL]
- ��� ����� key ��� ���������� �������������
��������� ���������, �� ���������� ��������� � ��������������� ��������� ������ �������� nsems � �������� nsems �� ����� 0.
- [ENOENT]
- ��� ����� key �� ���������� �������������
��������� ��������� � ��������� (semflg &
IPC_CREAT) �����.
- [ENOSPC]
- ������������� ��������� ��������� ������
���� ������, �� ����� ����� ��������� ����������� ���������� ���������� ��������������� � �������.
- [ENOSPC]
- ������������� ��������� ��������� ������
���� ������, �� ����� ����� ��������� ����������� ���������� ���������� ��������� �
�������.
- [EEXIST]
- ��� ����� key ��� ���������� �������������
��������� ��������� � ��������� ((semflg &
IPC_CREAT) & (semflg & IPC_EXCL)) �������.
��. �����
intro(2), semctl(2), semop(2).
�����������
��� �������� ���������� ���������� ������ ������������
��������������� ����� ����� - ������������� ���������
���������. � ������ ������ ������������ -1, � ���������� errno ������������� ��� ������.