putchar_unlocked#
Synopsis#
#include <stdio.h>
int getc_unlocked(FILE *stream);
int getchar_unlocked(void);
int putc_unlocked(int c, FILE *stream);
int putchar_unlocked(int c);
Status#
Partially implemented
Conformance#
IEEE Std 1003.1-2017
Description#
Versions of the functions getc()
, getchar()
, putc()
, and putchar()
respectively named getc_unlocked()
,
getchar_unlocked()
,putc_unlocked()
, and putchar_unlocked()
shall be provided which are functionally equivalent to
the original versions, with the exception that they are not required to be implemented in a fully thread-safe manner.
They shall be thread-safe when used within a scope protected by flockfile()
(or ftrylockfile()
) and funlockfile()
.
These functions can safely be used in a multithreaded program if and only if they are called while the invoking thread
owns the ( FILE *)
object, as is the case after a successful call to the flockfile()
or ftrylockfile()
functions.
If getc_unlocked()
or putc_unlocked()
are implemented as macros they may evaluate stream more than once, so
the stream argument should never be an expression with side effects.
Return value#
See getc()
, getchar()
, putc()
, and putchar()
.
Errors#
See getc()
, getchar()
, putc()
, and putchar()
.
Tests#
Untested
Known bugs#
None