### 4.22 `fputwc`, `putwc`—write a wide character on a stream or file

Synopsis

         #include <stdio.h>
         #include <wchar.h>
         wint_t fputwc(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 putwc(wchar_t wc, FILE *fp);

         #include <stdio.h>
         #include <wchar.h>
         wint_t _putwc_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.

The `putwc` function or macro functions identically to `fputwc`. It may be implemented as a macro, and may evaluate its argument more than once. There is no reason ever to use it.

The `_fputwc_r` and `_putwc_r` functions are simply reentrant versions of `fputwc` and `putwc` 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
C99, POSIX.1-2001