The Open Group Base Specifications Issue 7
IEEE Std 1003.1, 2013 Edition
Copyright © 2001-2013 The IEEE and The Open Group

#### NAME

> sys/sem.h - XSI semaphore facility

#### SYNOPSIS

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

#### DESCRIPTION

> The <sys/sem.h> header shall define the following symbolic constant for use as a semaphore operation flag:

> SEM_UNDO
>   Set up adjust on exit entry.

> The <sys/sem.h> header shall define the following symbolic constants for use as commands for the semctl() function:

> 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 <sys/sem.h> header shall define the semid_ds structure, which shall include 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 <sys/sem.h> header shall define the pid_t, size_t, and time_t types as described in <sys/types.h>.

> A semaphore shall be represented by an anonymous structure, which shall include 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 <sys/sem.h> header shall define the sembuf structure, which shall include 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, the <sys/sem.h> header shall include the <sys/ipc.h> header.

The following sections are informative.

#### APPLICATION USAGE

> None.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> <sys/ipc.h>, <sys/types.h>

> XSH semctl, semget, semop

#### CHANGE HISTORY

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

#### Issue 7

> Austin Group Interpretation 1003.1-2001 #179 is applied.

> This reference page is clarified with respect to macros and symbolic constants.

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2013 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]