sem_open man page on DigitalUNIX

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

sem_open(3)							   sem_open(3)

       sem_open	 -  Opens/creates  a  named  semaphore	for  use  by a process

       #include <semaphore.h>

       sem_t *sem_open ( const char *name, int ooption, mode_t mode,  unsigned
       int value);

       Realtime Library (, librt.a)

       Points  to a string naming the semaphore object.	 Specifies whether the
       semaphore is to be created (O_CREAT option  bit	set)  or  only	opened
       (O_CREAT	 option	 bit clear).  If O_CREAT is set, the O_EXCL option bit
       may additionally be set to specify that the call should fail if a sema‐
       phore  of the same name already exists.	The O_CREAT and O_EXCL options
       are defined in the <fcntl.h> header file.   Specifies  the  semaphore's
       permission bits. This argument is used only when the semaphore is being
       created.	 Specifies the initial value to be  given  to  the  semaphore.
       This argument is used only when the semaphore is being created.

       Use  the	 sem_open function to establish the connection between a named
       semaphore and a process.	 Subsequently, the calling process can	refer‐
       ence  the  semaphore  by	 using the address returned from the call. The
       semaphore is available in subsequent calls  to  sem_wait,  sem_trywait,
       sem_post,  and  sem_getvalue functions. The semaphore remains usable by
       the process until the semaphore is closed by a successful call  to  the
       sem_close function.

       The  O_CREAT  option  bit in the ooption parameter controls whether the
       semaphore is created or only opened by the call to sem_open.

       A created semaphore's user ID is set to the  user  ID  of  the  calling
       process	and  its  group	 ID is set to a system default group or to the
       group ID of the process.	 The semaphore's permission bits  are  set  to
       the  value  of the mode argument, except for those set in the file mode
       creation mask of the process.

       After a semaphore is created, other processes can open the semaphore by
       calling sem_open with the same value for the name argument.

       On successful completion, this function opens the semaphore and returns
       the semaphore's descriptor. Otherwise, the function returns -1 and sets
       errno to indicate the error.

       The  sem_open  function fails under the following conditions: The named
       semaphore exists and the permissions specified by ooption  are  denied,
       or  the named semaphore does not exist and the permissions specified by
       ooption are denied.  O_CREAT and O_EXCL are set and the named semaphore
       already	exists.	  The  sem_open operation was interrupted by a signal.
       The sem_open operation is not supported for the given name. Or, O_CREAT
       was  specified  in  ooption and value was greater than {SEM_VALUE_MAX}.
       Too many semaphore descriptors or file descriptors are currently in use
       by  this process.  The length of the name string exceeds {PATH_MAX}, or
       a pathname component is longer than {NAME_MAX} while  {_POSIX_NO_TRUNC}
       is  in  effect.	 Too many semaphores are currently open in the system.
       O_CREAT is not set and the named semaphore does	not  exist.   Insuffi‐
       cient space exists for the creation of a new named semaphore.

       Functions:  sem_close(3),  sem_post(3),	sem_trywait(3), sem_unlink(3),
       sem_wait(3), mkfifo(3)

       Guide to Realtime Programming


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