sigsem(S)
sigsem --
signals a process waiting on a semaphore
Syntax
cc . . . -lx
int sigsem(sem_num);
int sem_num;
Description
sigsem
signals a process that is waiting on the semaphore
sem_num
that it may proceed and use the resource governed by the semaphore.
sigsem is used in conjunction with
waitsem(S)
to allow synchronization of processes wishing to access a resource.
One or more processes may waitsem on the given semaphore
and is put to sleep until the process which currently has access
to the resource issues a sigsem call.
If there are any waiting processes, sigsem
causes the process which is next in line on the semaphore's queue
to be rescheduled for execution.
The semaphore's queue is organized in first in first out (FIFO) order.
System compatibility
sigsem
can only be used to signal semaphores created under UNIX
Version 3.0, not for UNIX System V semaphores.
Diagnostics
sigsem
returns the value (int) -1 if an error occurs. If
sem_num does not refer to a semaphore type file,
errno is set to ENOTNAM.
If sem_num has not been previously opened by
opensem, errno
is set to EBADF.
If the process issuing a sigsem call is not the
current ``owner'' of the semaphore (i.e., if the process has not issued
a waitsem call before the sigsem),
errno is set to ENAVAIL.
Notes
This feature is a
XENIX specific enhancement
and may not be present in all
UNIX implementations.
See also
creatsem(S),
opensem(S),
waitsem(S)
Standards conformance
sigsem is not part of any currently supported standard;
it is an extension of AT&T System V provided by the Santa Cruz Operation.
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003