Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SHMGET(2)		  FreeBSD System Calls Manual		     SHMGET(2)

NAME
     shmget -- obtain a	shared memory identifier

LIBRARY
     Standard C	Library	(libc, -lc)

SYNOPSIS
     #include <sys/types.h>
     #include <sys/ipc.h>
     #include <sys/shm.h>

     int
     shmget(key_t key, size_t size, int	flag);

DESCRIPTION
     Based on the values of key	and flag, shmget() returns the identifier of a
     newly created or previously existing shared memory	segment.  The key is
     analogous to a filename: it provides a handle that	names an IPC object.
     There are three ways to specify a key:

     +o	 IPC_PRIVATE may be specified, in which	case a new IPC object will be
	 created.

     +o	 An integer constant may be specified.	If no IPC object corresponding
	 to key	is specified and the IPC_CREAT bit is set in flag, a new one
	 will be created.

     +o	 The ftok(3) may be used to generate a key from	a pathname.

     The mode of a newly created IPC object is determined by OR'ing the	fol-
     lowing constants into the flag argument:

     S_IRUSR	   Read	access for owner.

     S_IWUSR	   Write access	for owner.

     S_IRGRP	   Read	access for group.

     S_IWGRP	   Write access	for group.

     S_IROTH	   Read	access for other.

     S_IWOTH	   Write access	for other.

     When creating a new shared	memory segment,	size indicates the desired
     size of the new segment in	bytes.	The size of the	segment	may be rounded
     up	to a multiple convenient to the	kernel (i.e., the page size).

RETURN VALUES
     Upon successful completion, shmget() returns the positive integer identi-
     fier of a shared memory segment.  Otherwise, -1 is	returned and errno set
     to	indicate the error.

ERRORS
     The shmget() system call will fail	if:

     [EINVAL]		Size specified is greater than the size	of the previ-
			ously existing segment.	 Size specified	is less	than
			the system imposed minimum, or greater than the	system
			imposed	maximum.

     [ENOENT]		No shared memory segment was found matching key, and
			IPC_CREAT was not specified.

     [ENOSPC]		The kernel was unable to allocate enough memory	to
			satisfy	the request.

     [EEXIST]		IPC_CREAT and IPC_EXCL were specified, and a shared
			memory segment corresponding to	key already exists.

SEE ALSO
     shmat(2), shmctl(2), shmdt(2), stat(2), ftok(3)

FreeBSD	11.1		       December	17, 2010		  FreeBSD 11.1

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=shmget&sektion=2&manpath=FreeBSD+11.0-RELEASE+and+Ports>

home | help