FPUTWC(3)

NAME
fputwc, putwc, fputwc_unlocked, putwc_unlocked, _fputwc_r, _fputwc_unlocked_r, _putwc_r, _putwc_unlocked_r - write a wide character on a stream or file

SYNOPSIS

#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.

AUTHORS

Steve Chamberlain
    Author.

Roland Pesch
    Author.

Red Hat Support

Jeff Johnston
    Author.

COPYRIGHT

This file documents the ANSI C library.

Copyright (C) 1992, 1993, 1994-2014 Red Hat, Inc.

libc includes software developed by the University of California, Berkeley and its contributors.

libc includes software developed by Martin Jackson, Graham Haley and Steve Chamberlain of Tadpole Technology and released to Cygnus.

libc uses floating-point conversion software developed at AT&T, which includes this copyright information:

The author of this software is David M. Gay.

Copyright (c) 1991 by AT&T.

Permission to use, copy, modify, and distribute this software for any purpose without fee is hereby granted, provided that this entire notice is included in all copies of any software which is or includes a copy or modification of this software and in all copies of the supporting documentation for such software.

THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, subject to the terms of the GNU General Public License, which includes the provision that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.