semget(2)


semget -- get set of semaphores

Synopsis

   #include <sys/types.h>
   #include <sys/ipc.h>
   #include <sys/sem.h>
   

int semget(key_t key, int nsems, int semflg);

Description

semget returns the semaphore identifier associated with key. This identifier is accessible by any process in the system, subject to normal access restrictions and the permissions set with semflg.

A semaphore identifier and associated data structure and set containing nsems semaphores [see intro(2)] are created for key if one of the following is true:

On creation, the data structure associated with the new semaphore identifier is initialized as follows:

Return values

On success, semget returns a non-negative integer, namely a semaphore identifier. On failure, semget returns -1 and sets errno to identify the error.

Errors

In the following conditions, semget fails and sets errno to:

EINVAL
nsems is either less than or equal to zero or greater than the system-imposed limit.

EACCES
A semaphore identifier exists for key, but operation permission [see intro(2)] as specified by the low-order 9 bits of semflg would not be granted.

EINVAL
A semaphore identifier exists for key, but the number of semaphores in the set associated with it is less than nsems, and nsems is not equal to zero.

ENOENT
A semaphore identifier does not exist for key and (semflg&IPC_CREAT) is false.

ENOSPC
A semaphore identifier is to be created but the system-imposed limit on the maximum number of allowed semaphores or semaphore identifiers system wide would be exceeded.

ENOSPC
A semaphore identifier is to be created but the system-imposed limit on the maximum number of allowed semaphores system wide would be exceeded.

EEXIST
A semaphore identifier exists for key but both (semflg&IPC_CREAT) and (semflg&IPC_EXCL) are both true.

References

intro(2), semctl(2), semop(2), stdipc(3C)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004