table of contents
other sections
SEMGET(2) | System Calls Manual | SEMGET(2) |
NAME¶
semget
—
obtain a semaphore id
LIBRARY¶
Standard C Library (libc, -lc)SYNOPSIS¶
#include
<sys/types.h>
#include
<sys/ipc.h>
#include
<sys/sem.h>
int
semget
(key_t
key, int
nsems, int
flag);
DESCRIPTION¶
Based on the values of key and flag,semget
() returns the identifier of a newly
created or previously existing set of semaphores. The key is analogous to a
filename: it provides a handle that names an IPC object. There are three ways
to specify a key:
- IPC_PRIVATE may be specified, in which case a new IPC object will be created.
- An integer constant may be specified. If no IPC object corresponding to key is specified and the IPC_CREAT bit is set in flag, a new one will be created.
- The ftok(3) function may be used to generate a key from a pathname.
SEM_R
- Read access for user.
SEM_A
- Alter access for user.
- (
SEM_R>>3
) - Read access for group.
- (
SEM_A>>3
) - Alter access for group.
- (
SEM_R>>6
) - Read access for other.
- (
SEM_A>>6
) - Alter access for other.
RETURN VALUES¶
Thesemget
() system call returns the id of a
semaphore set if successful; otherwise, -1 is returned and
errno is set to indicate the error.
ERRORS¶
Thesemget
() system call will fail if:
- [
EACCES
] - Access permission failure.
- [
EEXIST
] - IPC_CREAT and IPC_EXCL were specified, and a semaphore set corresponding to key already exists.
- [
EINVAL
] - The number of semaphores requested exceeds the system imposed maximum per set.
- [
ENOSPC
] - Insufficiently many semaphores are available.
- [
ENOSPC
] - The kernel could not allocate a struct semid_ds.
- [
ENOENT
] - No semaphore set was found corresponding to key, and IPC_CREAT was not specified.
SEE ALSO¶
semctl(2), semop(2), ftok(3)September 12, 1995 | Debian |