���� ���� ���� ���� ������ ���α׷��Ӹ� ���� ���̵�

�ý��� ȣ��:shmget() (SYSTEM CALL:shmget())

���ο� �޼��� ť�� ����ų� �����ϴ� ť�� �����ϱ� ����, shmget() �ý��� ȣ���� ���ȴ�.


  SYSTEM CALL: shmget();                                                          

  PROTOTYPE: int shmget ( key_t key, int size, int shmflg );                                             
    RETURNS: shared memory segment identifier on success                                                       
             -1 on error: errno = EINVAL (Invalid segment size specified)
                                  EEXIST (Segment exists, cannot create)
                                  EIDRM (Segment is marked for deletion, or was removed)
                                  ENOENT (Segment does not exist)
                                  EACCES (Permission denied)
                                  ENOMEM (Not enough memory to create segment)
  NOTES:

�̽������� �̷� Ư���� ȣ���� ���� �˰��ִ� ��ó�� ������ �Ѵ�. �̰��� �޼��� ť�� ������ ������ get ȣ��� �ſ� ����ϴ�.

shmget()�� ù��° �ƱԸ�Ʈ�� Ű���̴�(ftok()ȣ�⿡ ���� ��ȯ��). �� Ű���� Ŀ�ξȿ� �����ϴ� �ٸ� ���� �޸� ���׸�Ʈ�� Ű���� �񱳵Ǿ�����. �̶�, ���� �� ���� ������ shmflg �ƱԸ�Ʈ�� ���뿡 �޷��ִ�.

IPC_CREAT

Ŀ�ξȿ� �̹� �������� �ʴ´ٸ� ���׸�Ʈ�� �����.

IPC_EXCL

IPC_CREAT�� �Բ� ���� ��, ���׸�Ʈ�� �̹� �����ϸ� �����Ѵ�.

IPC_CREAT�� ȥ�� ���Ǹ�, shmget()�� ���Ӱ� ������� ���׸�Ʈ�� ���׸�Ʈ Ȯ���ڸ� ��ȯ�ϰų� ���� Ű���� ���� ���׸�Ʈ�� �����ϸ� �� ���׸�Ʈ�� Ȯ���ڸ� ��ȯ�Ѵ�. IPC_EXCL�� IPC_CREAT�� �Բ� ���ȴٸ�, ���ο� ���׸�Ʈ�� ����� ���ų� ���׸�Ʈ�� �����ϸ�, -1���� ������ ȣ���� �����Ѵ�. IPC_EXCL�� �� ��ü�δ� ���� ������, IPC_CREAT�� ���յ� ��, �������� �ʴ� ���׸�Ʈ�� ������ ���� ������ ���� ���µ� ���ȴ�.

�ٽ� �ѹ�, �ΰ����� 8�� ���� ����ũ�ȿ� OR�� �� �ִ�.

���� �޸� ���׸�Ʈ�� ����� ��ġ��Ű�� ���� wrapper �Լ��� ����� ����:


int open_segment( key_t keyval, int segsize )
{
        int     shmid;
        
        if((shmid = shmget( keyval, segsize, IPC_CREAT | 0660 )) == -1)
        {
                return(-1);
        }
        
        return(shmid);
}

�������� �㰡�������� 0660�� ��������� �ָ��϶�. �� ���� �Լ��� ���� �޸� ���׸�Ʈ�� Ȯ����(int)�� ��ȭ�ϰų�, ������ -1�� ��ȯ�Ѵ�. Ű���� �䱸�Ǵ� ���׸�Ʈ ũ�� (����Ʈ ����)�� �ƱԸ�Ʈ�� �Ѱ�����.

���μ����� �־��� ���׸�Ʈ�� ��ȿ�� IPC Ȯ���ڸ� ���� ��, ���� �ܰ�� ���μ����� �ڽ��� �ּ� ������ ���׸�Ʈ�� �׸��ų�(map) ���̴�(attach) ���̴�.


����:���ο� ����� �ڷ� ���� ����:�ý��� ȣ��:shmat()

Copyright (c) 1996,1997 by Euibeom.Hwang & SangEun.Oh All Rights Reserved

Email To:Webmaster , Another address
LAST UPDATE Nov 28,1997
Created Nov 28,1997