|Linux & Unix Commands - Search Man Pages
SEMGET(2) BSD System Calls Manual SEMGET(2)
semget -- obtain a semaphore id
Standard C Library (libc, -lc)
semget(key_t key, int nsems, int flag);
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:
o IPC_PRIVATE may be specified, in which case a new IPC object will be created.
o An integer constant may be specified. If no IPC object corresponding to key is speci-
fied and the IPC_CREAT bit is set in flag, a new one will be created.
o The ftok(3) function may be used to generate a key from a pathname.
The mode of a newly created IPC object is determined by OR'ing the following constants into
the flag argument:
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.
If a new set of semaphores is being created, nsems is used to indicate the number of sema-
phores the set should contain. Otherwise, nsems may be specified as 0.
The semget() system call returns the id of a semaphore set if successful; otherwise, -1 is
returned and errno is set to indicate the error.
The semget() 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
[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
semctl(2), semop(2), ftok(3)
BSD September 12, 1995 BSD
All times are GMT -4. The time now is 03:48 PM.