.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\" %%%LICENSE_END
.\"
.\" References consulted:
.\"   GNU glibc-2 source code and manual
.\"   Dinkumware C library reference http://www.dinkumware.com/
.\"   OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html
.\"   ISO/IEC 9899:1999
.\"
.TH FPUTWS 3  2021-03-22 "GNU" "Linux Programmer's Manual"
.SH NAME
fputws \- write a wide-character string to a FILE stream
.SH SYNOPSIS
.nf
.B #include <wchar.h>
.PP
.BI "int fputws(const wchar_t *restrict " ws ", FILE *restrict " stream );
.fi
.SH DESCRIPTION
The
.BR fputws ()
function is the wide-character equivalent of
the
.BR fputs (3)
function.
It writes the wide-character string starting at \fIws\fP, up to but
not including the terminating null wide character (L\(aq\e0\(aq), to \fIstream\fP.
.PP
For a nonlocking counterpart, see
.BR unlocked_stdio (3).
.SH RETURN VALUE
The
.BR fputws ()
function returns a
nonnegative integer if the operation was
successful, or \-1 to indicate an error.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
.ad l
.nh
.TS
allbox;
lbx lb lb
l l l.
Interface	Attribute	Value
T{
.BR fputws ()
T}	Thread safety	MT-Safe
.TE
.hy
.ad
.sp 1
.SH CONFORMING TO
POSIX.1-2001, POSIX.1-2008, C99.
.SH NOTES
The behavior of
.BR fputws ()
depends on the
.B LC_CTYPE
category of the
current locale.
.PP
In the absence of additional information passed to the
.BR fopen (3)
call, it is
reasonable to expect that
.BR fputws ()
will actually write the multibyte
string corresponding to the wide-character string \fIws\fP.
.SH SEE ALSO
.BR fputwc (3),
.BR unlocked_stdio (3)
