Mac Developer Library Developer
Search

 

This manual page is part of Xcode Tools version 5.0

To obtain these tools:

If you are running a version of Xcode Tools other than 5.0, view the documentation locally:

  • In Xcode

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • To learn how the manual is organized or to learn about command syntax, read the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Developer Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.




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

NAME
     shmget -- get shared memory area identifier

SYNOPSIS
     #include <sys/shm.h>

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

DESCRIPTION
     shmget() returns the shared memory identifier associated with the key key.

     A shared memory segment is created if either key is equal to IPC_PRIVATE, or key does not have a shared
     memory segment identifier associated with it, and the IPC_CREAT bit is set in shmflg.

     If a new shared memory segment is created, the data structure associated with it (the shmid_ds struc-ture, structure,
     ture, see shmctl(2)) is initialized as follows:

     •   shm_perm.cuid and shm_perm.uid are set to the effective uid of the calling process.

     •   shm_perm.gid and shm_perm.cgid are set to the effective gid of the calling process.

     •   shm_perm.mode is set to the lower 9 bits of shmflg.

     •   shm_lpid, shm_nattch, shm_atime, and shm_dtime are set to 0

     •   shm_ctime is set to the current time.

     •   shm_segsz is set to the value of size.

     •   The ftok(3) function may be used to generate a key from a pathname.

RETURN VALUES
     Upon successful completion a positive shared memory segment identifier is returned.  Otherwise, -1 is
     returned and the global variable errno is set to indicate the error.

ERRORS
     The shmget() system call will fail if:

     [EACCES]           A shared memory segment is already associated with key and the caller has no permis-sion permission
                        sion to access it.

     [EEXIST]           Both IPC_CREAT and IPC_EXCL are set in shmflg, and a shared memory segment is
                        already associated with key.

     [EINVAL]           No shared memory segment is to be created, and a shared memory segment exists for
                        key, but the size of the segment associated with it is less than size, which is non-zero. nonzero.
                        zero.

     [ENOENT]           IPC_CREAT was not set in shmflg and no shared memory segment associated with key was
                        found.

     [ENOMEM]           There is not enough memory left to created a shared memory segment of the requested
                        size.

     [ENOSPC]           A new shared memory identifier could not be created because the system limit for the
                        number of shared memory identifiers has been reached.

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

     int
     shmget(key_t key, int size, int shmflg);

     All of these include files are necessary.  The type of size has changed.

SEE ALSO
     ftok(3), shmat(2), shmctl(2), shmdt(2), compat(5)

BSD                             August 17, 1995                            BSD

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.

Feedback