Differences between current version and previous revision of semctl(2).
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 2 | Last edited on Tuesday, April 15, 2003 1:31:52 am | by PerryLorier | |
Older page: | version 1 | Last edited on Tuesday, June 4, 2002 12:23:45 am | by perry | Revert |
@@ -1,265 +1,77 @@
-SEMCTL
-!!!SEMCTL
-NAME
-SYNOPSIS
-DESCRIPTION
-RETURN VALUE
-ERRORS
-NOTES
-CONFORMING TO
-SEE ALSO
-----
!!NAME
-
-
semctl - semaphore control operations
!!SYNOPSIS
+ __#include <sys/types.h>__
+ __#include <sys/ipc.h>__
+ __#include <sys/sem.h>__
-
-__#include
-__#if defined(__GNU_LIBRARY__)
-__
__int semctl (int__ ''semid''__, int__ ''semnum''__, int__ ''cmd''__, union semun__ ''arg''__
)__
+
__int semctl(int __''semid''__, int __''semnum''__, int __''cmd''__, ...
);
__
!!DESCRIPTION
-The function performs the control operation specified by
-
''cmd'' on the semaphore set (or on the ''semnum''-th
-
semaphore of the set) identified by ''semid''. The first
-semaphore of the set is indicated by a value ____ for
-
''semnum''.
+The function performs the control operation specified by ''cmd'' on the semaphore set (or on the ''semnum''-th semaphore of the set) identified by ''semid''. The first
+semaphore of the set is indicated by a value ____ for ''semnum''.
Legal values for ''cmd'' are
+;__IPC_STAT__: Copy info from the semaphore set data structure into the structure pointed to by ''arg''__.buf__. The argument ''semnum'' is ignored. The calling process must have read access privileges on the semaphore set.
+;__IPC_SET__: Write the values of some members of the __semid_ds__ structure pointed to by ''arg''__.buf__ to the semaphore set data structure, updating also its
+__sem_ctime__ member. Considered members from the user supplied __struct semid_ds__ pointed to by ''arg''__.buf__ are
+ __ sem_perm.uid__
+ __sem_perm.gid__
+ __sem_perm.mode__ /* only lowest 9-bits */
+;:The calling process effective user-ID must be one among super-user, creator or owner of the semaphore set. The argument ''semnum'' is ignored.
+;__IPC_RMID__: Remove immediately the semaphore set and its data structures awakening all waiting processes (with an error return and __errno__ set to __EIDRM__). The calling process effective user-ID must be one among super-user, creator or owner of the semaphore set. The argument ''semnum'' is ignored.
-__IPC
_STAT
__
+;
__GETALL
__: Return
__semval__ for all semaphores of the set into ''arg''__.array__. The argument ''semnum'' is ignored. The calling process must have read access privileges on the semaphore set.
+;__GETNCNT__: The system call returns the value of __semncnt__ for the ''semnum''-th semaphore of the set (i.e. the number of processes waiting for an increase of __semval__ for the ''semnum''-th semaphore of the set). The calling process must have read access privileges on the semaphore set.
-Copy info from the semaphore set data structure into the
-structure pointed to by ''arg''__.buf__. The argument
-''semnum'' is ignored. The calling process must have read
-access privileges on the semaphore set.
-
-
-__IPC_SET__
-
-
-Write the values of some members of the __semid_ds__
-structure pointed to by ''arg''__.buf__ to the
-semaphore set data structure, updating also its
-__sem_ctime__ member. Considered members from the user
-supplied __struct semid_ds__ pointed to by
-''arg''__.buf__ are
-
-
-__ sem_perm.uid
-sem_perm.gid
-sem_perm.mode__ /* only lowest 9-bits */
-The calling process effective user-ID must be one among super-user, creator or owner of the semaphore set. The argument ''semnum'' is ignored.
-
-
-__IPC_RMID__
-
-
-Remove immediately the semaphore set and its data structures
-awakening all waiting processes (with an error return and
-__errno__ set to __EIDRM__). The calling process
-effective user-ID must be one among super-user, creator or
-owner of the semaphore set. The argument ''semnum'' is
-ignored.
-
-
-__GETALL__
-
-
-Return __semval__ for all semaphores of the set into
-''arg''__.array__. The argument ''semnum'' is
-ignored. The calling process must have read access
-privileges on the semaphore set.
-
-
-
__GETNCNT
__
-
-
-
The system call returns the value of __semncnt
__ for the
-
''semnum''-th semaphore of the set (i.e. the number of
-processes waiting for an increase
of __semval
__ for the
-
''semnum''-th semaphore of the set). The calling process
-
must have read access privileges on the semaphore
+;
__GETPID
__:
The system call returns the value of __sempid
__ for the ''semnum''-th semaphore of the set (i.e. the pid
of the process that executed the last
__semop
__ call
for the ''semnum''-th semaphore of the set). The calling process must have read access privileges on the semaphore
set.
+;__GETVAL__: The system call returns the value of __semval__ for the ''semnum''-th semaphore of the set. The calling process must have read access privileges on the semaphore set.
-__GETPID
__
+;
__GETZCNT
__: The system call returns the value of __semzcnt__ for the ''semnum''-th semaphore of the set (i.e. the number of processes waiting for __semval__ of the ''semnum''-th semaphore of the set to become ). The calling process must have read access privileges on the semaphore set.
+;__SETALL__: Set __semval__ for all semaphores of the set using ''arg''__.array__'','' updating also the __sem_ctime__ member of the __semid_ds__ structure associated to the set. Undo entries are cleared for altered semaphores in all processes. Processes sleeping on the wait queue are awakened if some __semval__ becomes 0 or increases. The argument ''semnum'' is ignored. The calling process must have alter access privileges on the semaphore set.
-The system call returns the value of
__sempid
__ for the
-''semnum''-th semaphore of the set (i.e. the pid of the
-process that executed the last __semop__ call for the
-''semnum''-th semaphore of the set). The calling process
-must have read access privileges on the semaphore
-set.
-
-
-__GETVAL__
-
-
-The system call returns
the value of __semval__ for the
-
''semnum
''-th semaphore of the set. The calling process
-must have read access privileges on the semaphore
-set.
-
-
-
__GETZCNT__
-
-
-The system call returns the value of __semzcnt
__ for the
-
''semnum''-th semaphore of the set (i.e. the number of
-processes waiting for __semval__ of the ''semnum''-th
-semaphore of the set to become ). The calling process must
-have read access privileges on the semaphore
-set.
-
-
-__SETALL__
-
-
-Set __semval__ for all semaphores of the set using
-''arg''__.array__''
,''
updating also the
-
__sem_ctime__ member of the __semid_ds__ structure
-
associated to the set. Undo entries are
cleared for altered
-semaphores
in all processes. Processes sleeping on the wait
-
queue are awakened if some
__semval__ becomes 0 or
-
increases. The argument ''semnum'' is ignored. The
-
calling process must have alter access privileges on the
-
semaphore set.
-
-
-__SETVAL__
-
+;
__SETVAL
__: Set
the value of __semval__ to
''arg
''__.val
__ for the ''semnum''-th semaphore of the set, updating also the __sem_ctime__ member of the __semid_ds__ structure associated to the set. Undo entry is
cleared for altered semaphore
in all processes. Processes sleeping on the wait queue are awakened if __semval__ becomes 0 or increases. The calling process must have alter access privileges on the semaphore set.
-Set the value of __semval__ to ''arg''__.val__ for
-the ''semnum''-th semaphore of the set, updating also the
-__sem_ctime__ member of the __semid_ds__ structure
-associated to the set. Undo entry is cleared for altered
-semaphore in all processes. Processes sleeping on the wait
-queue are awakened if __semval__ becomes 0 or increases.
-The calling process must have alter access privileges on the
-semaphore set.
!!RETURN VALUE
+On fail the system call returns __-1__ with __errno__ indicating the error. Otherwise the system call returns a nonnegative value depending on ''cmd'' as follows:
+;__GETNCNT__: The value of __semncnt__.
-On fail the system call returns
__-1
__ with
__errno
__
-indicating the error
. Otherwise the system call returns a
-nonnegative value depending on ''cmd'' as
-follows:
+;
__GETPID
__: the value of
__sempid
__.
+;__GETVAL__: the value of __semval__.
-__GETNCNT
__
+;
__GETZCNT
__: the value of __semzcnt__.
-
-the value of __semncnt__.
-
-
-__GETPID__
-
-
-the value of __sempid__.
-
-
-__GETVAL__
-
-
-the value of __semval__.
-
-
-__GETZCNT__
-
-
-the value of __semzcnt__.
!!ERRORS
-
-
-
For a failing return, __errno__ will be set to one among
-
the following values:
-
-
-__
EACCES__
-
-
-
The calling process has no access permissions needed to
-
execute ''cmd''.
-
-
-__
EFAULT__
-
-
-
The address pointed to by ''arg''__.buf__ or
-
''arg''__.array__ isn't accessible.
-
-
-__
EIDRM__
-
-
-
The semaphore set was removed.
-
-
-__
EINVAL__
-
-
-
Invalid value for ''cmd'' or ''semid''.
-
-
-__
EPERM__
-
-
-
The argument ''cmd'' has value __IPC_SET__ or
-
__IPC_RMID__ but the calling process effective user-ID
-
has insufficient privileges to execute the
+For a failing return, __errno__ will be set to one among the following values:
+;[
EACCES]:
The calling process has no access permissions needed to execute ''cmd''.
+;[
EFAULT]:
The address pointed to by ''arg''__.buf__ or ''arg''__.array__ isn't accessible.
+;[
EIDRM]:
The semaphore set was removed.
+;[
EINVAL]:
Invalid value for ''cmd'' or ''semid''.
+;[
EPERM]:
The argument ''cmd'' has value __IPC_SET__ or __IPC_RMID__ but the calling process effective user-ID has insufficient privileges to execute the
command.
-
-
-__
ERANGE__
-
-
-
The argument ''cmd'' has value __SETALL__ or
-
__SETVAL__ and the value to which __semval__ has to be
-
set (for some semaphore of the set) is less than 0 or
-greater than the implementation value
-
__SEMVMX__.
+;[
ERANGE]:
The argument ''cmd'' has value __SETALL__ or __SETVAL__ and the value to which __semval__ has to be set (for some semaphore of the set) is less than 0 or
+greater than the implementation value __SEMVMX__.
!!NOTES
+The __IPC_INFO__, __SEM_STAT__ and __SEM_INFO__ control calls are used by the ipcs(8) program to provide information on allocated resources. In the future
+these can be modified as needed or moved to a proc file system interface.
+Various fields in a ''struct semid_ds'' were shorts under Linux 2.2 and have become longs under Linux 2.4. To take advantage of this, a recompilation under glibc-2.1.91 or later should suffice. (The kernel distinguishes old and new calls by a IPC_64 flag in ''cmd''.)
-The __IPC
_INFO
__, __SEM_STAT__ and __SEM_INFO__
-control calls are used by the ipcs(8) program to
-provide information on allocated resources. In the future
-these can be modified as needed or moved to a proc file
-system interface.
+The following system limit on semaphore sets affects a
__semctl
__ call:
+;__SEMVMX__: Maximum value for __semval__: implementation dependent (32767).
-Various fields in a ''struct semid_ds'' were shorts under
-Linux 2.2 and have become longs under Linux 2.4. To take
-advantage of this, a recompilation under glibc-2.1.91 or
-later should suffice. (The kernel distinguishes old and new
-calls by a IPC_64 flag in ''cmd''.)
-
-
-The following system limit on semaphore sets affects a
-__semctl__ call:
-
-
-__SEMVMX__
-
-
-Maximum value for __semval__: implementation dependent
-(32767).
!!CONFORMING TO
+SVr4, SVID. SVr4 documents more error conditions [EINVAL] and [EOVERFLOW].
-
-SVr4, SVID. SVr4 documents more error conditions EINVAL and
-EOVERFLOW.
!!SEE ALSO
-
-
-
ipc(5), shmget(2), shmat(2),
-
shmdt(2)
-----
+ipc(5), shmget(2), shmat(2), shmdt(2)