SEMCTL(2) | System Calls | SEMCTL(2) |
semctl - semaphore control operations
#include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> int semctl(int semid, int semnum, int cmd...);
The semctl() function provides a variety of semaphore control operations as specified by cmd. The fourth argument is optional, depending upon the operation requested. If required, it is of type union semun, which must be explicitly declared by the application program.
union semun {
int val;
struct semid_ds *buf;
ushort_t *array; } arg ;
The permission required for a semaphore operation is given as {token}, where token is the type of permission needed. The types of permission are interpreted as follows:
00400 READ by user 00200 ALTER by user 00040 READ by group 00020 ALTER by group 00004 READ by others 00002 ALTER by others
See the Semaphore Operation Permissions subsection of the DEFINITIONS section of Intro(2) for more information. The following semaphore operations as specified by cmd are executed with respect to the semaphore specified by semid and semnum.
GETVAL
SETVAL
GETPID
GETNCNT
GETZCNT
The following operations return and set, respectively, every semval in the set of semaphores.
GETALL
SETALL
The following operations are also available.
IPC_STAT
IPC_SET
sem_perm.uid sem_perm.gid sem_perm.mode /* access permission bits only */
This command can be executed only by a process that has either the {PRIV_IPC_OWNER} privilege or an effective user ID equal to the value of msg_perm.cuid or msg_perm.uid in the data structure associated with msqid. Only a process with the {PRIV_SYS_IPC_CONFIG} privilege can raise the value of msg_qbytes.
IPC_RMID
Upon successful completion, the value returned depends on cmd as follows:
GETVAL
GETPID
GETNCNT
GETZCNT
All other successful completions return 0; otherwise, −1 is returned and errno is set to indicate the error.
The semctl() function will fail if:
EACCES
EFAULT
EINVAL
EPERM
EOVERFLOW
ERANGE
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Standard |
ipcs(1), Intro(2), semget(2), semop(2), attributes(7), privileges(7), standards(7)
February 1, 2003 | OmniOS |