Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ semget(2) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

semctl(2)

semop(2)

stdipc(3C)






       semget(2)                                                  semget(2)


       NAME
             semget - get set of semaphores

       SYNOPSIS
             #include <sys/types.h>
             #include <sys/ipc.h>
             #include <sys/sem.h>
             int semget(key_t key, int nsems, int semflg);

       DESCRIPTION
             semget returns the semaphore identifier associated with key.
             This identifier is accessible by any process in the system,
             subject to normal access restrictions and the permissions set
             with semflg.

             A semaphore identifier and associated data structure and set
             containing nsems semaphores [see intro(2)] are created for key
             if one of the following is true:

                   key is equal to IPC_PRIVATE.

                   key does not already have a semaphore identifier
                   associated with it, and (semflg&IPC_CREAT) is true.

             On creation, the data structure associated with the new
             semaphore identifier is initialized as follows:

                   sem_perm.cuid, sem_perm.uid, sem_perm.cgid, and
                   sem_perm.gid are set equal to the effective user ID and
                   effective group ID, respectively, of the calling
                   process.

                   The access permission bits of sem_perm.mode are set
                   equal to the access permission bits of semflg.

                   sem_nsems is set equal to the value of nsems.

                   sem_otime is set equal to 0 and sem_ctime is set equal
                   to the current time.

          Return Values
             On success, semget returns a non-negative integer, namely a
             semaphore identifier.  On failure, semget returns -1 and sets
             errno to identify the error.




                           Copyright 1994 Novell, Inc.               Page 1













      semget(2)                                                  semget(2)


         Errors
            In the following conditions, semget fails and sets errno to:

            EINVAL         nsems is either less than or equal to zero or
                           greater than the system-imposed limit.

            EACCES         A semaphore identifier exists for key, but
                           operation permission [see intro(2)] as
                           specified by the low-order 9 bits of semflg
                           would not be granted.

            EINVAL         A semaphore identifier exists for key, but the
                           number of semaphores in the set associated with
                           it is less than nsems, and nsems is not equal
                           to zero.

            ENOENT         A semaphore identifier does not exist for key
                           and (semflg&IPC_CREAT) is false.

            ENOSPC         A semaphore identifier is to be created but the
                           system-imposed limit on the maximum number of
                           allowed semaphores or semaphore identifiers
                           system wide would be exceeded.

            ENOSPC         A semaphore identifier is to be created but the
                           system-imposed limit on the maximum number of
                           allowed semaphores system wide would be
                           exceeded.

            EEXIST         A semaphore identifier exists for key but both
                           (semflg&IPC_CREAT) and (semflg&IPC_EXCL) are
                           both true.

      REFERENCES
            intro(2), semctl(2), semop(2), stdipc(3C)













                          Copyright 1994 Novell, Inc.               Page 2








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