System Interface Guide

Accessing a Shared Memory Segment

shmget(2) is used to obtain access to a shared memory segment. When the call succeeds, it returns the shared memory segment ID (shmid). The following code illustrates shmget().


#include  <sys/types.h>
 #include <sys/ipc.h>
 #include <sys/shm.h>
 ...
 	key_t		key;			/* key to be passed to shmget() */
 	int		shmflg;			/* shmflg to be passed to shmget() */
 	int		shmid;			/* return value from shmget() */
 	int		size;			/* size to be passed to shmget() */
 	...
 	key = ...
 	size = ...
 	shmflg) = ...
 	if ((shmid = shmget (key, size, shmflg)) == -1) {
 		perror("shmget: shmget failed");
 		exit(1);
 	} else {
 		(void) fprintf(stderr,
 					"shmget: shmget returned %d\n", shmid);
 		exit(0);
 	}
 	...