Server for Information Technologies ������ ��������������
������� �������������� ����������
(095) 932-9212, 932-9213, 939-0783
E-mail: [email protected]
������ �������� ����(!) ������������� ���������� CIT Forum CD-ROM

SHMGET(2)

��������
shmget - ��������� �������������� ������������ �������� ������

���������

        #include <sys/types.h>
        #include <sys/ipc.h>
        #include <sys/shm.h>
        
        int shmget (key, size, shmflg)
        key_t key;
        int size, shmflg;

��������
��������� ����� shmget ���������� ������������� ������������ �������� ������, ��������������� � ������ key.

������������� � ��������������� � ��� ��������� ������ � ����������� ������� �������� �� ������� ���� size ���� [��. intro(2)] ��������� ��� ����� key � ��������� �������:

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

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

  1. �������� ����� shm_perm.cuid, shm_perm.uid, shm_perm.cgid � shm_perm.gid ��������������� ������� ������������ �������������� ������������ �, ��������������, ������������ �������������� ������ ����������� ��������.
  2. ������� 9 ��� ���� shm_perm.mode ��������������� ������� 9 ������� ����� ��������� shmflg; �������� ���� shm_segsz ��������������� ������ ��������� size;
  3. �������� ����� shm_lpid, shm_nattch, shm_atime � shm_dtime ��������������� ������� 0.
  4. �������� ���� shm_ctime ��������������� ������ �������� �������.

��������� ����� shmget ����������� ��������, ���� ��������� ���� �� ���� �� ��������� �������:

[EINVAL]
�������� ��������� size ������ ������������ ��� ������ ������������� ��������, �������� � �������.
[EACCES]
��� ����� key ��� ���������� ������������� ������������ ��������, �� �� ����� ���� ������������� ����� ������� [��. intro(2)], ������������ � 9 ������� ����� ��������� shmflg.
[EINVAL]
��� ����� key ��� ���������� ������������� ������������ ��������, �� ������ �������� ������ �������� ��������� size � �������� size �� ����� ����.
[ENOENT]
��� ����� key �� ���������� ������������� ������������ �������� � ��������� (shmflg & IPC_CREAT) �����.
[ENOSPC]
������������� �� ��������� ��-�� ���������� ������������� ������������ �������� ���������� ��������������� ����������� ���������.
[ENOMEM]
������������� � ��������������� � ��� ����������� ������� ������ �� ��������� ��-�� ���������� ������������ ���������� ������.
[EEXIST]
��� ����� key ��� ���������� ������������� ������������ �������� � ��������� ((shmflg & IPC_CREAT) & (shmflg & IPC_EXCL)) �������.

��. �����
intro(2), shmctl(2), shmop(2).

�����������
��� �������� ���������� ���������� ������ ������������ ��������������� ����� ����� - ������������� ������������ �������� ������. � ������ ������ ������������ -1, � ���������� errno ������������� ��� ������.

����������
���������� ���� ������� ����������� ������� ������ ����� ����, ��� ��������� ��������� ������ �� ����.
Comments: [email protected]
Designed by Andrey Novikov
Copyright © CIT