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

  1. �������� ��������� key ����� IPC_PRIVATE.
  2. ���� key ��� �� ����� ���������������� � ��� �������������� ��������� ��������� � ��������� (semflg & IPC_CREAT) �������.

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

  1. �������� ����� sem_perm.cuid, sem_perm.uid, sem_perm.cgid � sem_perm.gid ��������������� ������� ������������ �������������� ������������ �, ��������������, ������������ �������������� ������ ����������� ��������.
  2. ������� 9 ��� ���� sem_perm.mode ��������������� ������� 9 ������� ����� ��������� semflg.
  3. �������� ���� sem_nsems ��������������� ������ �������� ��������� nsems.
  4. �������� ���� 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 ������������� ��� ������.
Comments: [email protected]
Designed by Andrey Novikov
Copyright © CIT