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

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

Contents


 sem_init(2)                                                     sem_init(2)




 NAME    [Toc]    [Back]
      sem_init - initialize an unnamed POSIX semaphore

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

      int sem_init(sem_t *sem, int pshared, unsigned int value);

 DESCRIPTION    [Toc]    [Back]
      sem_init() is used to initialize an unnamed semaphore.  A successful
      call to sem_init() will create a new unnamed semaphore referred to by
      sem, if one does not exist, initialize the unnamed semaphore
      descriptor, referred to by sem, to the non-negative value specified by
      value.  If the unnamed semaphore already exists, i.e. created by a
      previous call to sem_init(), it is re-initialized only if its current
      value is equal to its initial value (set by the last successful call
      to sem_init()).  If so, the initial value of the unnamed semaphore is
      re-initialized to the value argument. Otherwise, the call fails.

      The argument pshared specifies if the unnamed semaphore is sharable
      with other processes. If pshared is equal to 0, the unnamed semaphore
      is not shared with other processes.  If pshared is non-zero, the
      unnamed semaphore is sharable with any processes that can access sem.
      The access mode specified for the unnamed semaphore allows read and
      write permissions to all processes.  If the calling process may attach
      to the shared sem_t structure, it is assumed it may operate on the
      semaphore.

      To use this function, link in the realtime library by specifying -lrt
      on the compiler or linker command line.

 EXAMPLES    [Toc]    [Back]
      The following call to sem_init() will create a new unnamed semaphore
      referred to by sem, if one does not exist, initialize the unnamed
      semaphore descriptor, referred to by sem, to the non-negative value
      specified by value.

           sem_init(sem, pshared, value);

 RETURN VALUE    [Toc]    [Back]
      If the semaphore was created and initialized, sem_init() returns 0 to
      the caller.

      If the semaphore could not be created/initialized, the call returns -1
      and sets errno to indicate the error.

 ERRORS    [Toc]    [Back]
      sem_init() fails and does not perform the requested operation if any
      of the following conditions are encountered:





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






 sem_init(2)                                                     sem_init(2)




           [EPERM]        The calling process does not have the privileges
                          necessary to initialize the semaphore.

           [EBUSY]        There are threads currently blocked on the
                          semaphore or there are outstanding locks held on
                          the semaphore.

           [EINVAL]       The argument value is greater than
                          {_POSIX_SEM_VALUE_MAX}.

           [ENOSPC]       There are insufficient resources to perform the
                          operation or the upper limit on the number of
                          semaphores is reached.

 SEE ALSO    [Toc]    [Back]
      sem_destroy(2), sem_post(2), sem_trywait(2), sem_wait(2),
      <semaphore.h>.

 STANDARDS CONFORMANCE    [Toc]    [Back]
      sem_init(): POSIX


 Hewlett-Packard Company            - 2 -   HP-UX 11i Version 2: August 2003
[ Back ]
      
      
 Similar pages
Name OS Title
sem_init IRIX initialize a posix unnamed semaphore
sem_destroy HP-UX destroy an unnamed POSIX semaphore
sem_destroy IRIX deinitialize a posix unnamed semaphore
sem_getvalue IRIX get the value of a posix named or unnamed semaphore
sem_mode IRIX set the operation mode of a POSIX unnamed semaphore
sem_post IRIX release a posix named or unnamed semaphore
sem_wait IRIX acquire a posix named or unnamed semaphore
sem_init FreeBSD initialize an unnamed semaphore
sem_init OpenBSD initialize an unnamed semaphore
pipcrm HP-UX remove a POSIX message queue or a POSIX named semaphore
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service