|
Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!
System Calls semctl(2)
NAME
semctl - semaphore control operations
SYNOPSIS
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
int semctl(int semid, int semnum, int cmd, ...);
DESCRIPTION
The semctl() function provides a variety of semaphore con-
trol 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 expli-
citly 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 exe-
cuted with respect to the semaphore specified by semid and
semnum.
GETVAL Return the value of semval (see intro(2)).
{READ}
SETVAL Set the value of semval to arg.val. {ALTER}
When this command is successfully executed,
the semadj value corresponding to the speci-
fied semaphore in all processes is cleared.
SunOS 5.10 Last change: 1 Feb 2003 1
System Calls semctl(2)
GETPID Return the value of (int) sempid. {READ}
GETNCNT Return the value of semncnt. {READ}
GETZCNT Return the value of semzcnt. {READ}
The following operations return and set, respectively, every
semval in the set of semaphores.
GETALL Place semvals into array pointed to by
arg.array. {READ}
SETALL Set semvals according to the array pointed
to by arg.array. {ALTER}. When this cmd is
successfully executed, the semadj values
corresponding to each specified semaphore in
all processes are cleared.
The following operations 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.
The contents of this structure are defined
in intro(2). {READ}
IPC_SET Set the value of the following members of
the data structure associated with semid to
the corresponding value found in the struc-
ture pointed to by arg.buf:
sem_perm.uid
sem_perm.gid
sem_perm.mode /* access permission bits only */
This command can be executed only by a pro-
cess 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
SunOS 5.10 Last change: 1 Feb 2003 2
System Calls semctl(2)
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 Remove the semaphore identifier specified by
semid from the system and destroy the set of
semaphores and data structure associated
with it. This command can be executed only
by a process that has the {PRIV_IPC_OWNER}
privilege or an effective user ID equal to
the value of sem_perm.cuid or sem_perm.uid
in the data structure associated with semid.
RETURN VALUES
Upon successful completion, the value returned depends on
cmd as follows:
GETVAL the value of semval
GETPID the value of (int) sempid
GETNCNT the value of semncnt
GETZCNT the value of semzcnt
All other successful completions return 0; otherwise, -1 is
returned and errno is set to indicate the error.
ERRORS
The semctl() function will fail if:
EACCES Operation permission is denied to the cal-
ling process (see intro(2)).
EFAULT The source or target is not a valid address
in the user process.
SunOS 5.10 Last change: 1 Feb 2003 3
System Calls semctl(2)
EINVAL The semid argument is not a valid semaphore
identifier; the semnum argument is less than
0 or greater than sem_nsems -1; or the cmd
argument is not a valid command or is
IPC_SET and sem_perm.uid or sem_perm.gid is
not valid.
EPERM The cmd argument is equal to IPC_RMID or
IPC_SET, the effective user ID of the cal-
ling process is not equal to the value of
sem_perm.cuid or sem_perm.uid in the data
structure associated with semid, and
{PRIV_IPC_OWNER} is not asserted in the
effective set of the calling process.
EOVERFLOW The cmd argument is IPC_STAT and uid or gid
is too large to be stored in the structure
pointed to by arg.buf.
ERANGE The cmd argument is SETVAL or SETALL and the
value to which semval is to be set is
greater than the system imposed maximum.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Standard |
|_____________________________|_____________________________|
SEE ALSO
ipcs(1), intro(2), semget(2), semop(2), attributes(5),
privileges(5), standards(5)
SunOS 5.10 Last change: 1 Feb 2003 4
Man(1) output converted with
man2html and wrapped by fishsponge
This page was generated on Wed Sep 12 11:27:07 GMT 2007
|
Your favourite pages:
No pages logged yet. Trying to save cookie... Top 10 most popular pages:
sqlite3 man page (5323 hits) (openSUSE 10.2)
svn man page (5181 hits) (FreeBSD 6.2)
adv_cap_autoneg man page (4865 hits) (Solaris 10 11_06)
CPAN man page (4602 hits) (Suse Linux 10.1)
ssh man page (4337 hits) (Suse Linux 10.1)
ssh-socks5-proxy-connect man page (2843 hits) (Solaris 10 11_06)
netcat man page (2691 hits) (Suse Linux 10.1)
pprosetup man page (2474 hits) (Solaris 10 11_06)
startproc man page (2457 hits) (Suse Linux 10.1)
signal man page (2395 hits) (Suse Linux 10.1)
|