| 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 | ||