SHMGET(2FREEBSD) - Linux man page online | System calls

Obtain a shared memory identifier.

SHMGET(2) BSD System Calls Manual SHMGET(2)


shmget — obtain a shared memory identifier


Standard C Library (libc, -lc)


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


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: · IPC_PRIVATE may be specified, in which case a new IPC object will be created. · An integer constant may be specified. If no IPC object corresponding to key is speci‐ fied and the IPC_CREAT bit is set in flag, a new one will be created. · 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 following 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 seg‐ ment in bytes. The size of the segment may be rounded up to a multiple convenient to the kernel (i.e., the page size).


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


The shmget() system call will fail if: [EINVAL] Size specified is greater than the size of the previously existing seg‐ ment. 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 corre‐ sponding to key already exists.


shmat(2), shmctl(2), shmdt(2), stat(2), ftok(3)
BSD December 17, 2010 BSD
This manual Reference Other manuals
shmget(2freebsd) referred by
refer to ftok(3) | shmctl(2) | shmget(2) | shmop(2) | stat(2)
Download raw manual
Index BSD System Calls Manual (+360) other. (+1) № 2 (+877)
Go top