The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

#### NAME

> sys/sem.h - XSI semaphore facility

#### SYNOPSIS

> `[XSI] #include <sys/sem.h>`

#### DESCRIPTION

> The <sys/sem.h> header shall define the following constants and structures.

> Semaphore operation flags:

> SEM_UNDO
>   Set up adjust on exit entry.

> Command definitions for the semctl() function shall be provided as follows:

> GETNCNT
>   Get semncnt.
> GETPID
>   Get sempid.
> GETVAL
>   Get semval.
> GETALL
>   Get all cases of semval.
> GETZCNT
>   Get semzcnt.
> SETVAL
>   Set semval.
> SETALL
>   Set all cases of semval.

> The semid_ds structure shall contain the following members:

>     struct ipc_perm  sem_perm  Operation permission structure.
>     unsigned short   sem_nsems Number of semaphores in set.
>     time_t           sem_otime Last semop
>      () time.
>     time_t           sem_ctime Last time changed by semctl
>      ().

> The pid_t, time_t, key_t, and size_t types shall be defined as described in <sys/types.h>.

> A semaphore shall be represented by an anonymous structure containing the following members:

>     unsigned short  semval   Semaphore value.
>     pid_t           sempid   Process ID of last operation.
>     unsigned short  semncnt  Number of processes waiting for semval
>                              to become greater than current value.
>     unsigned short  semzcnt  Number of processes waiting for semval
>                              to become 0.

> The sembuf structure shall contain the following members:

>     unsigned short  sem_num   Semaphore number.
>     short           sem_op    Semaphore operation.
>     short           sem_flg   Operation flags.

> The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided.

>     int   semctl(int, int, int, ...);
>     int   semget(key_t, int, int);
>     int   semop(int, struct sembuf *, size_t);

> In addition, all of the symbols from <sys/ipc.h> shall be defined when this header is included.

The following sections are informative.

#### APPLICATION USAGE

> None.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> <sys/ipc.h>, <sys/types.h>, semctl(), semget(), semop()

#### CHANGE HISTORY

> First released in Issue 2. Derived from System V Release 2.0.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]