Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

semget(2) [sunos man page]

semget(2)							   System Calls 							 semget(2)

NAME
semget - get set of semaphores SYNOPSIS
#include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> int semget(key_t key, int nsems, int semflg); DESCRIPTION
The semget() function returns the semaphore identifier associated with key. A semaphore identifier and associated data structure and set containing nsems semaphores (see intro(2)) are created for key if one of the following is true: o key is equal to IPC_PRIVATE. o key does not already have a semaphore identifier associated with it, and (semflg&IPC_CREAT) is true. On creation, the data structure associated with the new semaphore identifier is initialized as follows: o sem_perm.cuid, sem_perm.uid, sem_perm.cgid, and sem_perm.gid are set equal to the effective user ID and effective group ID, respec- tively, of the calling process. o The access permission bits of sem_perm.mode are set equal to the access permission bits of semflg. o sem_nsems is set equal to the value of nsems. o sem_otime is set equal to 0 and sem_ctime is set equal to the current time. RETURN VALUES
Upon successful completion, a non-negative integer representing a semaphore identifier is returned. Otherwise, -1 is returned and errno is set to indicate the error. ERRORS
The semget() function will fail if: EACCES A semaphore identifier exists for key, but operation permission (see intro(2)) as specified by the low-order 9 bits of sem- flg would not be granted. EEXIST A semaphore identifier exists for key but both (semflg&IPC_CREAT) and (semflg&IPC_EXCL) are both true. EINVAL The nsems argument is either less than or equal to 0 or greater than the system-imposed limit. See NOTES. 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 0. ENOENT A semaphore identifier does not exist for key and (semflg&IPC_CREAT) is false. ENOSPC A semaphore identifier is to be created but the system-imposed limit on the maximum number of allowed semaphores or sema- phore identifiers system-wide would be exceeded. See NOTES. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ SEE ALSO
ipcrm(1), ipcs(1), rctladm(1M), intro(2), semctl(2), semop(2), setrctl(2), ftok(3C), attributes(5), standards(5) NOTES
The system-imposed limit on the value of the nsems argument is the maintained on a per-process basis using the process.max-sem-nsems resource control. The system-imposed limit on the number of semaphore identifiers is maintained on a per-project basis using the project.max-sem-ids resource control. See rctladm(1M) and setrctl(2) for information about using resource controls. SunOS 5.10 11 Feb 2003 semget(2)

Check Out this Related 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)
Man Page