HP-UX Reference (11i v2 03/08) - 2 System Calls (vol 5)
s
semctl(2) semctl(2)
NAME
semctl - semaphore control operations
SYNOPSIS
#include <sys/sem.h>
int semctl(int semid,
int semnum,
int cmd,
...
);
union semun {
int val;
struct semid_ds ∗buf;
ushort ∗array;
} arg;
DESCRIPTION
The semctl() system call provides a variety of semaphore control operations as specified by cmd. The
fourth argument is optional and depends on the operation requested. If present, it must be of type
union semun, which the application program must explicitly declare. For the meaning of unspecified
variables, see semaphore identifier in glossary (9).
The following values for cmd are executed with respect to the semaphore specified by semid and semnum:
GETVAL Return the value of semval . Requires semaphore Read permission.
SETVAL Set the value of semval to arg.val , where arg is the fourth argument of semctl()
taken as a union semun. When this cmd is successfully executed, the semadj
value corresponding to the specified semaphore in all processes is cleared. Requires
semaphore Alter permission.
GETPID Return the value of sempid . Requires semaphore Read permission.
GETNCNT Return the value of semncnt . Requires semaphore Read permission.
GETZCNT Return the value of semzcnt . Requires semaphore Read permission.
The following values for cmd return and set, respectively, every semval in the set of semaphores.
GETALL Place semval s into array pointed to by arg.array , where arg is the fourth argument
of semctl() taken as a union semun. Requires semaphore Read permission.
SETALL Set semval s according to the array pointed to by arg.array , where arg is the fourth
argument of semctl() taken as a union semun. When this cmd is successfully
executed, the semadj values corresponding to each specified semaphore in all
processes are cleared. Requires semaphore Alter permission.
The following values for cmd are also available:
IPC_STAT Place the current value of each member of the data structure associated with semid
into the structure pointed to by arg.buf , where arg is the fourth argument of
semctl() taken as a union semun. The contents of this structure are defined
in glossary (9). Requires semaphore Read permission.
IPC_SET Set the value of the following members of the data structure associated with semid
to the corresponding value found in the structure pointed to by arg.buf , where arg
is the fourth argument of semctl() taken as a union semun:
sem_perm.uid
sem_perm.gid
sem_perm.mode /* only low 9 bits */
This cmd can only be executed by a process that has an effective user ID equal to
either that of superuser or to the value of either sem_perm.uid or
sem_perm.cuid in the data structure associated with semid.
IPC_RMID Remove the semaphore identifier specified by semid from the system and destroy
the set of semaphores and data structure associated with it. This cmd can only be
executed by a process that has an effective user ID equal to either that of superuser
HP-UX 11i Version 2: August 2003 − 1 − Hewlett-Packard Company Section 2−−303