semctl.2 (2010 09)

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 Returns the semaphore value. Requires semaphore Read permission.
SETVAL Sets the value of the semaphore 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 Returns the pid of the last process that performed a semaphore operation on this
semaphore. Requires semaphore Read permission.
GETNCNT Returns count of the number of processes that are currently suspended awaiting this
semaphore’s value to become greater than its current value. Requires semaphore
Read permission.
GETZCNT Returns count of the number of processes that are currently suspended awaiting this
semaphore’s value to become zero. Requires semaphore Read permission.
The following values for cmd return and set, respectively, every semaphore in the set of semaphores.
GETALL Place semaphore value into array pointed to by arg.array , where arg is the fourth
argument of semctl() taken as a union semun. Requires semaphore Read per-
mission.
SETALL Set semaphore value 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 success-
fully 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 */
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (4 pages)