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

#### 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 symbolic constant SEM_FAILED which shall have type sem_t *.

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

>     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_close, sem_destroy, sem_getvalue, sem_init, sem_open, sem_post, sem_timedwait, 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.

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-2016 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]