semget man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

semget(2)							     semget(2)

       semget - Return (and possibly create) a semaphore ID

       #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  pro‐
       grams  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.

       Interfaces documented on this reference page conform to industry	 stan‐
       dards as follows:

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

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

       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

	      If  the specified key exists, and IPC_EXCL is not set, the sema‐
	      phore 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.

       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	 sema‐
       phores  and returns its ID in the following situations: The key parame‐
       ter 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 initial‐
       izes 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.

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

       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.

       The  semget()  function sets errno to the specified values for the fol‐
       lowing 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 sema‐
       phore ID exceeded the system-wide limit on the size  of	the  semaphore

       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)


List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net