Main index | Section 2 | 日本語 | Options |
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
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 SEM_UNDO and IPC_NOWAIT may be OR'ed into the sem_flg member in order to modify the behavior of the given operation.
The operation performed depends as follows on the value of sem_op:
A negative value for sem_op generally means that a process is waiting for a resource to become available.
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.
[EINVAL] | |
No semaphore set corresponds to semid, or the process would exceed the system-defined limit for the number of per-process SEM_UNDO structures. | |
[EACCES] | |
Permission denied due to mismatch between operation and mode of semaphore set. | |
[EAGAIN] | |
The semaphore's value would have resulted in the process being put to sleep and IPC_NOWAIT was specified. | |
[E2BIG] | |
Too many operations were specified. [ SEMOPM] | |
[EFBIG] | |
sem_num was not in the range of valid semaphores for the set. | |
[EIDRM] | |
The semaphore set was removed from the system. | |
[EINTR] | |
The semop() system call was interrupted by a signal. | |
[ENOSPC] | |
The system SEM_UNDO pool [ SEMMNU] is full. | |
[ERANGE] | |
The requested operation would cause either the semaphore's current value [ SEMVMX] or its adjust on exit value [ SEMAEM] to exceed the system-imposed limits. | |
SEMOP (2) | September 22, 1995 |
Main index | Section 2 | 日本語 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
“ | One of the advantages of using UNIX to teach an operating systems course is the sources and documentation will easily fit into a student's briefcase. | ” |
— John Lions |