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

  man pages->HP-UX 11i man pages -> semget (2)              
Title
Content
Arch
Section
 

Contents


 semget(2)                                                         semget(2)




 NAME    [Toc]    [Back]
      semget - get set of semaphores

 SYNOPSIS    [Toc]    [Back]
      #include <sys/sem.h>

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

 DESCRIPTION    [Toc]    [Back]
      semget() returns the semaphore identifier associated with key.

      A semaphore identifier and associated data structure and set
      containing nsems semaphores are created for key if one of the
      following is true:

           key is equal to IPC_PRIVATE.  This call creates a new identifier,
           subject to available resources.  The identifier is never returned
           by another call to semget() until it has been released by a call
           to semctl().  The identifier should be used among the calling
           process and its descendents; however, it is not a requirement.
           The resource can be accessed by any process having the proper
           permissions.

           key does not already have a semaphore identifier associated with
           it, and (semflg & IPC_CREAT) is ``true''.

      Specific behavior can be requested by ORing the following masks into
      semflg.

           IPC_CREAT: Create a semaphore identifier if one does not already
           exist for key.

           IPC_EXCL: If IPC_CREAT is specified and key already has a
           semaphore identifier associated with it, return an error.

      The low-order 9 bits of semflg are the semaphore operation permissions
      which are defined in glossary(9).

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

           In the operation-permission structure, sem_perm.cuid and
           sem_perm.uid are set equal to the effective-user-ID of the
           calling process, while sem_perm.cgid and sem_perm.gid are set to
           the effective-group-ID of the calling process.

           The low-order 9 bits of sem_perm.mode are set equal to the loworder
 9 bits of semflg.

           sem_nsems is set equal to the value of nsems.




 Hewlett-Packard Company            - 1 -   HP-UX 11i Version 2: August 2003






 semget(2)                                                         semget(2)




           sem_otime is set equal to 0 and sem_ctime is set equal to the
           current time.

 EXAMPLES    [Toc]    [Back]
      The following call to semget() returns a semid associated with the key
      returned by ftok("myfile", 'A').  If a semid associated with the key
      does not exist, a new semid, set of 4 semaphores, and associated data
      structure will be created.  If a semid for the key already exists, the
      semid is simply returned.

           int semid;

           mysemid = semget (ftok("myfile",'A'), 4, IPC_CREAT | 0600);

 RETURN VALUE    [Toc]    [Back]
      Upon successful completion, a non-negative integer, namely a semaphore
      identifier, is returned.  Otherwise, a value of -1 is returned and
      errno is set to indicate the error.

 ERRORS    [Toc]    [Back]
      semget() fails if one or more of the following is true:

           [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 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 semaphore identifiers system wide would be
                          exceeded.

           [EEXIST]       A semaphore identifier exists for key but
                          ((semflg& IPC_CREAT) && (semflg & IPC_EXCL)) is
                          ``true''.

 SEE ALSO    [Toc]    [Back]
      ipcrm(1), ipcs(1), semctl(2), semop(2), stdipc(3C).

 STANDARDS CONFORMANCE    [Toc]    [Back]
      semget(): SVID2, SVID3, XPG2, XPG3, XPG4


 Hewlett-Packard Company            - 2 -   HP-UX 11i Version 2: August 2003
[ Back ]
      
      
 Similar pages
Name OS Title
sem FreeBSD POSIX semaphores
semmsl HP-UX maximum number of System V IPC semaphores per identifier
lockf HP-UX provide semaphores and record locking on files
sema HP-UX enable or disable System V IPC semaphores at boot time
perlipc OpenBSD Perl interprocess communication (signals, fifos, pipes, safe subprocesses, sockets, and semaphores)
perlipc IRIX Perl interprocess communication (signals, fifos, pipes, safe subprocesses, sockets, and semaphores)
semmns HP-UX number of System V IPC system-wide semaphores
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service