"<semaphore.h>">

NAME

semaphore.h — semaphores

SYNOPSIS

#include <semaphore.h>

DESCRIPTION

The <semaphore.h> header shall define the sem_t type, used in performing semaphore operations. The semaphore may be implemented using a file descriptor, in which case applications are able to open up at least a total of {OPEN_MAX} files and semaphores.

The <semaphore.h> header shall define the timespec structure as described in <time.h>.

The <semaphore.h> header shall define the symbolic constant SEM_FAILED which shall have type sem_t *.

The <semaphore.h> header shall define O_CREAT and O_EXCL as described in <fcntl.h>.

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

int    sem_clockwait(sem_t *restrict, clockid_t,
           const struct timespec *restrict);
int    sem_close(sem_t *);
int    sem_destroy(sem_t *);
int    sem_getvalue(sem_t *restrict, int *restrict);
int    sem_init(sem_t *, int, unsigned);
sem_t *sem_open(const char *, int, ...);
int    sem_post(sem_t *);
int    sem_timedwait(sem_t *restrict, const struct timespec *restrict);
int    sem_trywait(sem_t *);
int    sem_unlink(const char *);
int    sem_wait(sem_t *);

Inclusion of the <semaphore.h> header may make visible symbols defined in the <fcntl.h> and <time.h> headers.


The following sections are informative.

APPLICATION USAGE

None.

RATIONALE

None.

FUTURE DIRECTIONS

None.

SEE ALSO

<fcntl.h> , <sys/types.h> , <time.h>

XSH sem_clockwait , sem_close , sem_destroy , sem_getvalue , sem_init , sem_open , sem_post , sem_trywait , sem_unlink

CHANGE HISTORY

First released in Issue 5. Included for alignment with the POSIX Realtime Extension.

Issue 6

The <semaphore.h> header is marked as part of the Semaphores option.

The Open Group Corrigendum U021/3 is applied, adding a description of SEM_FAILED.

The sem_timedwait() function is added for alignment with IEEE Std 1003.1d-1999.

The restrict keyword is added to the prototypes for sem_getvalue() and sem_timedwait().

Issue 7

SD5-XBD-ERN-57 is applied, allowing the header to make visible symbols from the <time.h> header.

The <semaphore.h> header is moved from the Semaphores option to the Base.

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

Issue 8

Austin Group Defect 592 is applied, requiring <semaphore.h> to define the timespec structure.

Austin Group Defect 593 is applied, adding O_CREAT and O_EXCL.

Austin Group Defect 1216 is applied, adding sem_clockwait().

End of informative text.