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

  man pages->Tru64 Unix man pages -> semget (2)              
Title
Content
Arch
Section
 

semget(2)

Contents


NAME    [Toc]    [Back]

       semget - Return (and possibly create) a semaphore ID

SYNOPSIS    [Toc]    [Back]

       #include <sys/sem.h>

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

       Application developers may want to specify #include statements
 for <sys/types.h> and <sys/ipc.h> before the one for
       <sys/sem.h>  if  programs are being developed for multiple
       platforms.  The additional  #include  statements  are  not
       required on Tru64 UNIX systems or by ISO or XSH specifications,
 but may be required on other vendors' systems  that
       conform to these standards.

STANDARDS    [Toc]    [Back]

       Interfaces  documented  on  this reference page conform to
       industry standards as follows:

       semget(): XPG4, XSH4.2, XSH5.0

       Refer to the standards(5) reference page for more information
 about industry standards and associated tags.

PARAMETERS    [Toc]    [Back]

       Specifies  the  key that identifies the semaphore set. The
       value for the key parameter can be IPC_PRIVATE or a random
       number  other  than 0 (zero). To ensure that you receive a
       new, unused entry in the semaphore table, specify IPC_PRIVATE
  as  the  value  of  key.   Specifies  the  number of
       semaphores to create in the semaphore set.  Specifies  the
       creation  options.  Possible values are as follows: If the
       key specified does not exist, the semget()  function  creates
 a semaphore ID using the specified key.

              If  the  specified  key exists, and IPC_EXCL is not
              set, the semaphore id  for  the  specified  key  is
              returned.

              If  the  specified  key exists and IPC_EXCL is set,
              the semget() function fails and returns  an  error.
              Specifies  that  you  want  exclusive access to the
              semaphore set.

              If the specified key already exists,  the  semget()
              function fails and returns an error notification.

DESCRIPTION    [Toc]    [Back]

       The  system  defines  sets  of semaphores in a system-wide
       table, with each set being an  entry  in  the  table.  The
       semget()  function  returns  an  ID  that  identifies  the
       semaphore set's entry in the table.  You  determine  which
       semaphore  set's  ID  is  returned  by  specifying the key
       parameter.

       The semget() function creates a semaphore  set  containing
       nsems semaphores and returns its ID in the following situations:
  The  key  parameter  is  IPC_PRIVATE.   The   key
       parameter  does  not  already  exist  as  an  entry in the
       semaphore table and the IPC_CREAT option is set.

       To create a semaphore set, the semget()  function  creates
       and  initializes  a  structure  of type semid_ds, which is
       defined as follows:

       struct semid_ds {
               struct ipc_perm     sem_perm;
               struct sem          *sem_base;
               ushort_t            sem_nsems;
               time_t              sem_otime;
               time_t              sem_ctime; };

       For  a  complete  description  of  this   structure,   see
       semid_ds(4).  The semget() function initializes the structure
 as follows: The sem_perm.cuid and sem_perm.uid fields
       are set equal to the effective user ID of the calling process.
  The sem_perm.cgid and sem_perm.gid fields  are  set
       equal  to  the  effective group ID of the calling process.
       The low-order nine bits of sem_perm.mode are set equal  to
       the low-order nine bits of semflg.  The sem_nsems field is
       set equal to the value of nsems.  The sem_otime  field  is
       set equal to zero (0) and the sem_ctime field is set equal
       to the current time.

       The individual semaphores within  a  set  are  implemented
       using  the sem structure. (For more information about this
       structure, see the <sys/sem.h> header file.) The  semget()
       function  does not initialize the sem structure associated
       with each semaphore in the set. The individual  semaphores
       are  initialized  when you call the semctl() function with
       the SETVAL or SETALL request.

NOTES    [Toc]    [Back]

       The librt  library  contains  alternative  interfaces  for
       interprocess  communication.  The  names of these routines
       adhere to the format sem_* and their reference  pages  are
       listed in SEE ALSO.

RETURN VALUES    [Toc]    [Back]

       Upon  successful completion, the semget() function returns
       a semaphore identifier. If the semget() function fails, it
       returns  a  value  of  -1  and  sets errno to indicate the
       error.

ERRORS    [Toc]    [Back]

       The semget() function sets errno to the  specified  values
       for  the  following  conditions:  A  semaphore  ID already
       exists for the key parameter, but operation permission  as
       specified by the low-order nine bits of the semflg parameter
 was not granted.  A semaphore ID  already  exists  for
       the  key  parameter,  but IPC_CREAT and IPC_EXCL were used
       for the semflg parameter.  The value of the nsems  parameter
  is less than or equal to 0 (zero) or greater than the
       system-defined limit. Or, a semaphore  ID  already  exists
       for the key parameter, but the number of semaphores in the
       set is less than the nsems parameter, and the nsems parameter
  is  not  equal to 0 (zero).  A semaphore ID does not
       exist for the key parameter and IPC_CREAT was not set.  An
       attempt  to create a new semaphore ID exceeded the systemwide
 limit on the size of the semaphore table.




SEE ALSO    [Toc]    [Back]

      
      
       Functions:   semctl(2),   semop(2),   table(2),   ftok(3),
       sem_close(3), sem_destroy(3), sem_getvalue(3),

       sem_init(3),   sem_open(3),   sem_post(3),  sem_unlink(3),
       sem_wait(3)

       Files: semid_ds(4), sysconfigtab(4)

       Standards: standards(5)



                                                        semget(2)
[ Back ]
 Similar pages
Name OS Title
msgget Tru64 Return (and possibly create) the ID for a message queue
shmget Tru64 Return (and possibly create) the ID for a shared memory region
open Linux open and possibly create a file or device
ustestsema IRIX return the value of a semaphore
sem_open HP-UX create/open a named POSIX semaphore
unlink Linux delete a name and possibly the file it refers to
remove Linux delete a name and possibly the file it refers to
socket Tru64 Create an end point for communication and return a descriptor
zgrep Linux search possibly compressed files for a regular expression
gzgrep IRIX search possibly compressed files for a regular expression
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service