|
NAMEsemop —
atomic array of operations on a semaphore set
LIBRARYStandard C Library (libc, -lc)SYNOPSIS#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
int
DESCRIPTIONThesemop () system call atomically performs the array of
operations indicated by array on the semaphore set
indicated by semid. The length of
array is indicated by nops. Each
operation is encoded in a struct sembuf, which is
defined as follows:
struct sembuf { u_short sem_num; /* semaphore # */ short sem_op; /* semaphore operation */ short sem_flg; /* operation flags */ }; For each element in array,
sem_op and sem_flg determine an
operation to be performed on semaphore number sem_num
in the set. The values The operation performed depends as follows on the value of sem_op:
For each semaphore a process has in use, the kernel maintains an “adjust on exit” value, as alluded to earlier. When a process exits, either voluntarily or involuntarily, the adjust on exit value for each semaphore is added to the semaphore's value. This can be used to ensure that a resource is released if a process terminates unexpectedly. RETURN VALUESThesemop () function returns the value 0 if
successful; otherwise the value -1 is returned and the global variable
errno is set to indicate the error.
ERRORSThesemop () system call will fail if:
SEE ALSOsemctl(2), semget(2), sigaction(2)BUGSThesemop () system call may block waiting for memory
even if IPC_NOWAIT was specified.
Visit the GSP FreeBSD Man Page Interface. |