Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ creatsem(2XNX) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

opensem(2)

sigsem(2XNX)

waitsem(2XNX)






       creatsem(2XNX)      (XENIX System Compatibility)      creatsem(2XNX)


       NAME
             creatsem - (XENIX) create an instance of a binary semaphore

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

       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:
                   sem_num = creatsem("semaphore", mode);

             to create, initialize, and open the semaphore for that
             process.  All other processes using the semaphore should
             issue:
                   sem_num = 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.

          Return Values
             creatsem returns the value -1 if an error occurs.  If the
             semaphore named by sem_name is already open for use by other


                           Copyright 1994 Novell, Inc.               Page 1













      creatsem(2XNX)      (XENIX System Compatibility)      creatsem(2XNX)


            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.

      REFERENCES
            opensem(2), sigsem(2XNX), waitsem(2XNX)

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





































                          Copyright 1994 Novell, Inc.               Page 2








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