HP-UX Reference (11i v1 00/12) - 2 System Calls (vol 5)

__________________________________________________________________________________________________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________
STANDARD Printed by: Nora Chuang [nchuang] STANDARD
/build/1111/BRICK/man2/!!!intro.2
________________________________________________________________
___ ___
s
semctl(2) semctl(2)
NAME
semctl - semaphore control operations
SYNOPSIS
#include <sys/sem.h>
int semctl(int semid,
int semnum,
int cmd,
union arg
);
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.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 an int. When this cmd is successfully executed, the semadj value
corresponding to the specified semaphore in all processes is cleared. Requires sema-
phore 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 semvals into array pointed to by arg.array, where arg is the fourth argument of
semctl() taken as a pointer to unsigned short int. Requires semaphore
Read permission.
SETALL Set semvals according to the array pointed to by arg.array, where arg is the fourth
argument of
semctl() taken as a pointer to unsigned short int. When this
cmd is successfully executed, the semadj values corresponding to each specified sema-
phore 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 pointer to struct semid_ds. The contents of this struc-
ture 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 pointer to struct semid_ds:
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 exe-
cuted 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
HP-UX Release 11i: December 2000 1 Section 2287
___
___