Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

semget(2) [hpux man page]

semget(2)							System Calls Manual							 semget(2)

NAME
semget - get set of semaphores SYNOPSIS
DESCRIPTION
returns the semaphore identifier associated with key. A semaphore identifier and associated data structure and set containing nsems semaphores are created for key if one of the following is true: key is equal to This call creates a new identifier, subject to available resources. The identifier is never returned by another call to until it has been released by a call to The identifier should be used among the calling process and its descendents; how- ever, it is not a requirement. The resource can be accessed by any process having the proper permissions. key does not already have a semaphore identifier associated with it, and (semflg & is "true". Specific behavior can be requested by ORing the following masks into semflg. Create a semaphore identifier if one does not already exist for key. If is specified and key already has a semaphore identifier associated with it, return an error. The low-order 9 bits of semflg are the semaphore operation permissions which are defined in glossary(9). Upon creation, the data structure associated with the new semaphore identifier is initialized as follows: In the operation-permission structure, and are set equal to the effective-user-ID of the calling process, while and are set to the effective-group-ID of the calling process. The low-order 9 bits of are set equal to the low-order 9 bits of semflg. is set equal to the value of nsems. is set equal to 0 and is set equal to the current time. Security Restrictions Some or all of the actions associated with this system call are subject to compartmental restrictions. See compartments(5) for more infor- mation about compartmentalization on systems that support that feature. Compartmental restrictions can be overridden if the process pos- sesses the privilege (PRIV_COMMALLOWED). Processes owned by the superuser may not have this privilege. Processes owned by any user may have this privilege, depending on system configuration. See privileges(5) for more information about privileged access on systems that support fine-grained privileges. EXAMPLES
The following call to returns a semid associated with the key returned by If a semid associated with the key does not exist, a new semid, set of 4 semaphores, and associated data structure will be created. If a semid for the key already exists, the semid is simply returned. RETURN VALUE
Upon successful completion, a non-negative integer, namely a semaphore identifier, is returned. Otherwise, a value of -1 is returned and is set to indicate the error. ERRORS
fails if one or more of the following is true: nsems is either less than or equal to zero or greater than the system-imposed limit. A semaphore identifier exists for key, but operation permission as specified by the low-order 9 bits of semflg would not be granted. A semaphore identifier exists for key, but the number of semaphores in the set associated with it is less than nsems, and nsems is not equal to zero. A semaphore identifier does not exist for key and (semflg & is "false". A semaphore identifier is to be created, but the system-imposed limit on the maximum number of allowed semaphore identifiers system wide would be exceeded. A semaphore identifier exists for key but is "true". SEE ALSO
ipcrm(1), ipcs(1), semctl(2), semop(2), stdipc(3C). STANDARDS CONFORMANCE
semget(2)

Check Out this Related Man Page

SEMGET(2)						      BSD System Calls Manual							 SEMGET(2)

NAME
semget -- get set of semaphores LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <sys/sem.h> int semget(key_t key, int nsems, int semflg); DESCRIPTION
The semget() system call returns the semaphore identifier associated with key. A new set containing nsems semaphores is created if either key is equal to IPC_PRIVATE, or key does not have a semaphore set associated with it and the IPC_CREAT bit is set in semflg. If both the IPC_CREAT bit and the IPC_EXCL bit are set in semflg, and key has a semaphore set associated with it already, the operation will fail. If a new set of semaphores is created, the data structure associated with it (the semid_ds structure, see semctl(2)) is initialized as fol- lows: o sem_perm.cuid and sem_perm.uid are set to the effective uid of the calling process. o sem_perm.gid and sem_perm.cgid are set to the effective gid of the calling process. o sem_perm.mode is set to the lower 9 bits of semflg. o sem_nsems is set to the value of nsems. o sem_ctime is set to the current time. o sem_otime is set to 0. RETURN VALUES
semget() returns a non-negative semaphore identifier if successful. Otherwise, -1 is returned and errno is set to reflect the error. ERRORS
[EACCES] The caller has no permission to access a semaphore set already associated with key. [EEXIST] Both IPC_CREAT and IPC_EXCL are set in semflg, and a semaphore set is already associated with key. [EINVAL] nsems is less than 0 or greater than the system limit for the number in a semaphore set. A semaphore set associated with key exists, but has fewer semaphores than the number specified in nsems. [ENOSPC] A new set of semaphores could not be created because the system limit for the number of semaphores or the number of sema- phore sets has been reached. [ENOENT] IPC_CREAT is not set in semflg and no semaphore set associated with key was found. SEE ALSO
ipcs(1), semctl(2), semop(2), ftok(3) STANDARDS
The semget system call conforms to X/Open System Interfaces and Headers Issue 5 (``XSH5''). HISTORY
Semaphores appeared in the first release of AT&T System V UNIX. BSD
May 13, 2004 BSD
Man Page