*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> semget (2)              



NAME    [Toc]    [Back]

     semget - get semaphore set

SYNOPSIS    [Toc]    [Back]

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

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

DESCRIPTION    [Toc]    [Back]

     The semget() system call returns  the  semaphore  identifier
associated with

     A  new  set containing nsems semaphores is created if either
key is equal
     to IPC_PRIVATE, or key does not have a semaphore set associated with it
     and the IPC_CREAT bit is set in semflg.

     The  access  modes of the created semaphores is specified in
semflg by
     OR'ing the following values:

           SEM_A        alter permission for owner
           SEM_R        read permission for owner

           SEM_A >> 3   alter permission for group
           SEM_R >> 3   read permission for group

           SEM_A >> 6   alter permission for other
           SEM_R >> 6   read permission for other

     If a new set of semaphores is created,  the  data  structure
associated with
     it (the semid_ds structure, see semctl(2)) is initialized as

     +o   sem_perm.cuid and sem_perm.uid are set to the  effective
UID of the
         calling process.

     +o    sem_perm.gid and sem_perm.cgid are set to the effective
GID of the
         calling process.

     +o   sem_perm.mode is set to the lower 9 bits of semflg.

     +o   sem_nsems is set to the value of nsems.

     +o   sem_ctime is set to the current time.

     +o   sem_otime is set to 0.

RETURN VALUES    [Toc]    [Back]

     semget() returns a non-negative semaphore identifier if successful.  Otherwise,
  -1  is returned and errno is set to reflect the error.

ERRORS    [Toc]    [Back]

     [EACCES]      The caller  has  no  permission  to  access  a
semaphore set already
 associated with key.

     [EEXIST]      Both IPC_CREAT and IPC_EXCL are set in semflg,
and a
                   semaphore set is already associated with  key.

     [EINVAL]       nsems  is  less than or equal to 0 or greater
than the system
                   limit for the number in a semaphore set.

                   A semaphore set associated  with  key  exists,
but has fewer
                   semaphores than the number specified in nsems.

     [ENOSPC]      A new set of semaphores could not  be  created
because the
                   system  limit  for the number of semaphores or
the number of
                   semaphore sets has been reached.

     [ENOENT]       IPC_CREAT  was  not  set  in  semflg  and  no
semaphore set associated
 with key was found.

SEE ALSO    [Toc]    [Back]

     semctl(2), semop(2), ftok(3)

OpenBSD      3.6                          August     17,     1995
[ Back ]
 Similar pages
Name OS Title
sem_getvalue OpenBSD get the value of a semaphore
sem_getvalue FreeBSD get the value of a semaphore
semid_ds Tru64 Defines a semaphore set
usvsema IRIX release a semaphore
msem_lock HP-UX lock a semaphore
msem_unlock HP-UX unlock a semaphore
sem_getvalue HP-UX get the value of a POSIX semaphore
semop HP-UX semaphore operations
sem_getvalue Tru64 Gets the value of a specified semaphore (P1003.1b)
semtimedop HP-UX semaphore operations
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service