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


semaphore.h - semaphores


#include <semaphore.h>


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.








<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


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