btowc — convert single byte to wide character


#include <wchar.h>

wint_t btowc(int c);


The btowc() function converts c, interpreted as a multibyte sequence of length 1, starting in the initial shift state, to a wide character and returns it. If c is EOF or not a valid multibyte sequence of length 1, the btowc() function returns WEOF.

Return Value

The btowc() function returns the wide character converted from the single byte c. If c is EOF or not a valid multibyte sequence of length 1, it returns WEOF.


For an explanation of the terms used in this section, see attributes(7).

Interface Attribute Value
btowc() Thread safety MT-Safe

Conforming to

POSIX.1-2001, POSIX.1-2008, C99.


The behavior of btowc() depends on the LC_CTYPE category of the current locale.

This function should never be used. It does not work for encodings which have state, and unnecessarily treats single bytes differently from multibyte sequences. Use either mbtowc(3) or the thread-safe mbrtowc(3) instead.

See Also

mbrtowc(3), mbtowc(3), wctob(3)


This page is part of release 5.04 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at

Referenced By

wctob(3), wprintf(3).

2015-08-08 GNU Linux Programmer's Manual