FGETWC(3)

NAME
fgetwc, getwc, fgetwc_unlocked, getwc_unlocked, _fgetwc_r, _fgetwc_unlocked_r, _getwc_r, _getwc_unlocked_r - get a wide character from a file or stream

SYNOPSIS

#include <stdio.h>

#include <wchar.h>

wint_t fgetwc(FILE *fp);

#define _GNU_SOURCE

#include <stdio.h>

#include <wchar.h>

wint_t fgetwc_unlocked(FILE *fp);

#include <stdio.h>

#include <wchar.h>

wint_t _fgetwc_r(struct _reent *ptr, FILE *fp);

#include <stdio.h>

#include <wchar.h>

wint_t _fgetwc_unlocked_r(struct _reent *ptr, FILE *fp);

#include <stdio.h>

#include <wchar.h>

wint_t getwc(FILE *fp);

#define _GNU_SOURCE

#include <stdio.h>

#include <wchar.h>

wint_t getwc_unlocked(FILE *fp);

#include <stdio.h>

#include <wchar.h>

wint_t _getwc_r(struct _reent *ptr, FILE *fp);

#include <stdio.h>

#include <wchar.h>

wint_t _getwc_unlocked_r(struct _reent *ptr, FILE *fp);

DESCRIPTION

Use fgetwc to get the next wide character from the file or stream identified by fp. As a side effect, fgetwc advances the file's current position indicator.

fgetwc_unlocked is a non-thread-safe version of fgetwc. fgetwc_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 fgetwc_unlocked is equivalent to fgetwc.

The getwc and getwc_unlocked functions or macros functions identically to fgetwc and fgetwc_unlocked. It may be implemented as a macro, and may evaluate its argument more than once. There is no reason ever to use it.

_fgetwc_r, _getwc_r, _fgetwc_unlocked_r, and _getwc_unlocked_r are simply reentrant versions of the above functions that are passed the additional reentrant structure pointer argument: ptr.

RETURNS

The next wide character cast to wint_t, unless there is no more data, or the host system reports a read error; in either of these situations, fgetwc and getwc return WEOF.

You can distinguish the two situations that cause an EOF result by using the ferror and feof functions.

PORTABILITY

fgetwc and getwc are required by C99 and POSIX.1-2001.

fgetwc_unlocked and getwc_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.