Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ creatsem(2) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

opensem(2)

sigsem(2)

waitsem(2)

creatsem(2)



creatsem(2)    UNIX System V(Application Compatibility Package)     creatsem(2)


NAME
      creatsem - create an instance of a binary semaphore

SYNOPSIS
      cc [flag . . .] file . . . -lx
      int creatsem(int semnum, int mode, char *semname);

DESCRIPTION
      creatsem defines a binary semaphore named by sem_name to be used by
      waitsem and sigsem to manage mutually exclusive access to a resource,
      shared variable, or critical section of a program.  creatsem returns a
      unique semaphore number, sem_num, which may then be used as the parameter
      in waitsem and sigsem calls.  Semaphores are special files of 0 length.
      The filename space is used to provide unique identifiers for semaphores.
      mode sets the accessibility of the semaphore using the same format as
      file access bits.  Access to a semaphore is granted only on the basis of
      the read access bit; the write and execute bits are ignored.

      A semaphore can be operated on only by a synchronizing primitive, such as
      waitsem or sigsem, by creatsem which initializes it to some value, or by
      opensem which opens the semaphore for use by a process.  Synchronizing
      primitives are guaranteed to be executed without interruption once
      started.  These primitives are used by associating a semaphore with each
      resource (including critical code sections) to be protected.

      The process controlling the semaphore should issue:

            semnum = creatsem("semaphore", mode);

      to create, initialize, and open the semaphore for that process.  All
      other processes using the semaphore should issue:

            semnum = opensem("semaphore");

      to access the semaphore's identification value.  Note that a process
      cannot open and use a semaphore that has not been initialized by a call
      to creatsem, nor should a process open a semaphore more than once in one
      period of execution.  Both the creating and opening processes use waitsem
      and sigsem to use the semaphore sem_num.

DIAGNOSTICS
      creatsem returns the value -1 if an error occurs.  If the semaphore named
      by sem_name is already open for use by other processes, errno is set to
      EEXIST.  If the file specified exists but is not a semaphore type, errno
      is set to ENOTNAM.  If the semaphore has not been initialized by a call
      to creatsem, errno is set to EINVAL.

SEE ALSO
      opensem(2), sigsem(2), waitsem(2)





10/89                                                                    Page 1







creatsem(2)    UNIX System V(Application Compatibility Package)     creatsem(2)


NOTES
      After a creatsem, you must do a waitsem to gain control of a given
      resource.



















































Page 2                                                                    10/89





Typewritten Software • bear@typewritten.org • Edmonds, WA 98026