sem_open man page on SunOS

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

sem_open(3RT)		  Realtime Library Functions		 sem_open(3RT)

NAME
       sem_open - initialize/open a named semaphore

SYNOPSIS
       cc [ flag... ] file... -lrt [ library... ]
       #include <semaphore.h>

       sem_t  *sem_open(const  char  *name,  int oflag, /* unsigned long mode,
       unsigned int value */ ...);

DESCRIPTION
       The sem_open() function establishes a connection between a named	 sema‐
       phore  and a process (or LWP or thread). Following a call to sem_open()
       with semaphore name name, the process may reference the semaphore asso‐
       ciated  with  name using the address returned from the call. This sema‐
       phore may be  used  in  subsequent  calls  to  sem_wait(3RT),  sem_try‐
       wait(3RT),  sem_post(3RT),  and	sem_close(3RT).	 The semaphore remains
       usable by this process until the semaphore is closed  by	 a  successful
       call to sem_close(3RT), _exit(2), or one of the exec functions.

       The  oflag argument controls whether the semaphore is created or merely
       accessed by the call to sem_open(). The following flag bits may be  set
       in oflag:

       O_CREAT	       This  flag is used to create a semaphore if it does not
		       already exist. If O_CREAT  is  set  and	the  semaphore
		       already	exists,	 then O_CREAT has no effect, except as
		       noted under O_EXCL.  Otherwise,	sem_open()  creates  a
		       named  semaphore. The O_CREAT flag requires a third and
		       a fourth argument: mode, which is of type  mode_t,  and
		       value,  which is of type unsigned int. The semaphore is
		       created with an initial value of value.	Valid  initial
		       values  for  semaphores	are  less  than	 or  equal  to
		       SEM_VALUE_MAX.

		       The user ID of the semaphore is set  to	the  effective
		       user  ID	 of the process; the group ID of the semaphore
		       is set to a system default group ID or to the effective
		       group  ID  of  the  process. The permission bits of the
		       semaphore are set to the value  of  the	mode  argument
		       except  those set in the file mode creation mask of the
		       process (see umask(2)). When bits in  mode  other  than
		       the  file  permission bits are specified, the effect is
		       unspecified.

		       After the semaphore named  name	has  been  created  by
		       sem_open()  with	 the O_CREAT flag, other processes can
		       connect to the semaphore by calling sem_open() with the
		       same value of name.

       O_EXCL	       If  O_EXCL and O_CREAT are set, sem_open() fails if the
		       semaphore name exists. The check for the	 existence  of
		       the  semaphore  and the creation of the semaphore if it
		       does not exist are atomic with respect  to  other  pro‐
		       cesses  executing  sem_open()  with  O_EXCL and O_CREAT
		       set.  If O_EXCL is set and  O_CREAT  is	not  set,  the
		       effect is undefined.

       If  flags  other	 than  O_CREAT	and  O_EXCL are specified in the oflag
       parameter, the effect is unspecified.

       The name argument points to a string naming a semaphore object.	It  is
       unspecified  whether the name appears in the file system and is visible
       to functions that take pathnames as arguments. The name	argument  con‐
       forms  to the construction rules for a pathname. The first character of
       name must be a slash  (/) character and	the  remaining	characters  of
       name  cannot  include  any  slash characters.  For maximum portability,
       name should include no more than 14 characters, but this limit  is  not
       enforced.

       If  a  process  makes  multiple successful calls to sem_open() with the
       same value for name, the same semaphore address is  returned  for  each
       such  successful	 call,	provided  that	there  have  been  no calls to
       sem_unlink(3RT) for this semaphore.

       References to copies of the semaphore produce undefined results.

RETURN VALUES
       Upon successful completion, the function returns	 the  address  of  the
       semaphore.  Otherwise,  it  will	 return	 a value of SEM_FAILED and set
       errno to indicate the error. The symbol SEM_FAILED is  defined  in  the
       header  <semaphore.h>. No successful return from sem_open() will return
       the value SEM_FAILED.

ERRORS
       If any of the following conditions occur, the sem_open() function  will
       return SEM_FAILED and set errno to the corresponding value:

       EACCES		       The  named semaphore exists and the O_RDWR per‐
			       missions are denied,  or	 the  named  semaphore
			       does  not  exist	 and  permission to create the
			       named semaphore is denied.

       EEXIST		       O_CREAT and  O_EXCL are set and the named sema‐
			       phore already exists.

       EINTR		       The  sem_open()	function  was interrupted by a
			       signal.

       EINVAL		       The sem_open() operation is not	supported  for
			       the given name, or O_CREAT was set in oflag and
			       value is greater than SEM_VALUE_MAX.

       EMFILE		       The number of  open  semaphore  descriptors  in
			       this  process  exceeds	SEM_NSEMS_MAX,	or the
			       number of open file descriptors in this process
			       exceeds	OPEN_MAX.

       ENAMETOOLONG	       The  length of name string exceeds PATH_MAX, or
			       a pathname component is	longer	than  NAME_MAX
			       while _POSIX_NO_TRUNC is in effect.

       ENFILE		       Too  many  semaphores are currently open in the
			       system.

       ENOENT		       O_CREAT is not set and the named semaphore does
			       not exist.

       ENOSPC		       There is insufficient space for the creation of
			       the new named semaphore.

       ENOSYS		       The sem_open() function is not supported by the
			       system.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Standard			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │MT-Level		     │MT-Safe			   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       exec(2),	    exit(2),	umask(2),    sem_close(3RT),	sem_post(3RT),
       sem_unlink(3RT),	 sem_wait(3RT),	 sysconf(3C),	attributes(5),	 stan‐
       dards(5)

SunOS 5.10			  28 Jun 2002			 sem_open(3RT)
[top]

List of man pages available for SunOS

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]
Tweet
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