fputwc
, putwc
, fputwc_unlocked
, putwc_unlocked
—write a wide character on a stream or fileSynopsis
#include <stdio.h> #include <wchar.h> wint_t fputwc(wchar_t wc, FILE *fp); #define _GNU_SOURCE #include <stdio.h> #include <wchar.h> wint_t fputwc_unlocked(wchar_t wc, FILE *fp); #include <stdio.h> #include <wchar.h> wint_t _fputwc_r(struct _reent *ptr, wchar_t wc, FILE *fp); #include <stdio.h> #include <wchar.h> wint_t _fputwc_unlocked_r(struct _reent *ptr, wchar_t wc, FILE *fp); #include <stdio.h> #include <wchar.h> wint_t putwc(wchar_t wc, FILE *fp); #define _GNU_SOURCE #include <stdio.h> #include <wchar.h> wint_t putwc_unlocked(wchar_t wc, FILE *fp); #include <stdio.h> #include <wchar.h> wint_t _putwc_r(struct _reent *ptr, wchar_t wc, FILE *fp); #include <stdio.h> #include <wchar.h> wint_t _putwc_unlocked_r(struct _reent *ptr, wchar_t wc, FILE *fp);
Description
fputwc
writes the wide character argument wc to the file or
stream identified by fp.
If the file was opened with append mode (or if the stream cannot support positioning), then the new wide character goes at the end of the file or stream. Otherwise, the new wide character is written at the current value of the position indicator, and the position indicator oadvances by one.
fputwc_unlocked
is a non-thread-safe version of fputwc
.
fputwc_unlocked
may only safely be used within a scope
protected by flockfile() (or ftrylockfile()) and funlockfile(). This
function may safely be used in a multi-threaded 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 threads are disabled, then
fputwc_unlocked
is equivalent to fputwc
.
The putwc
and putwc_unlocked
functions or macros function identically
to fputwc
and fputwc_unlocked
. They may be implemented as a macro, and
may evaluate its argument more than once. There is no reason ever to use them.
The _fputwc_r
, _putwc_r
, _fputwc_unlocked_r
, and
_putwc_unlocked_r
functions are simply reentrant versions of the above
that take an additional reentrant structure argument: ptr.
Returns
If successful, fputwc
and putwc
return their argument wc.
If an error intervenes, the result is EOF
. You can use
‘ferror(fp)
’ to query for errors.
Portability
fputwc
and putwc
are required by C99 and POSIX.1-2001.
fputwc_unlocked
and putwc_unlocked
are GNU extensions.