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:
shmget()�� ù��° �ƱԸ�Ʈ�� Ű���̴�(ftok()ȣ� ���� ��ȯ��). �� Ű���� Ŀ�ξȿ� �����ϴ� �ٸ� ���� �� ����Ʈ�� Ű���� �Ǿ�����. �̶�, ���� �� ���� ������ shmflg �ƱԸ�Ʈ�� ���뿡 ���ִ�.
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); }
���μ����� �־��� ����Ʈ�� ��ȿ�� IPC Ȯ���ڸ� ���� ��, ���� �ܰ�� ���μ����� �ڽ��� �ּ� ������ ����Ʈ�� ���ų�(map) ���̴�(attach) ���̴�.
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