tail head cat sleep
QR code linking to this page

Manual Pages  — SEMGET

NAME

semget – obtain a semaphore id

CONTENTS

LIBRARY

Standard C Library (libc, -lc)

SYNOPSIS

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

The mode of a newly created IPC object is determined by ORing these constants into the flag argument:
0400 Read access for user.
0200 Alter access for user.
0040 Read access for group.
0020 Alter access for group.
0004 Read access for other.
0002 Alter access for other.

If a new set of semaphores is being created, nsems is used to indicate the number of semaphores the set should contain. Otherwise, nsems may be specified as 0.

RETURN VALUES

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.

ERRORS

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 set.
[EINVAL]
  A semaphore set corresponding to key already exists and contains fewer semaphores than nsems.
[EINVAL]
  A semaphore set corresponding to key does not exist and nsems is 0 or negative.
[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)

SEMGET (2) March 4, 2018

tail head cat sleep
QR code linking to this page


Please direct any comments about this manual page service to Ben Bullock. Privacy policy.

Today, the Unix equivalent of a power drill would have 20 dials and switches, come with a nonstandard plug, require the user to hand-wind the motor coil, and not accept 3/8" or 7/8" drill bits (though this would be documented in the BUGS section of its instruction manual).
— The Unix Haters' handbook