btowc(3)

btowc3

Convert between wide and single-byte characters

Usage

#include <wchar.h>

wint_t

btowc(int c);

int

wctob(wint_t c);

#include <wchar.h>

#include <xlocale.h>

wint_t

btowc_l(int c, locale_t loc);

int

wctob_l(wint_t c, locale_t loc);

Library

Standard C Library (libc, -lc)

Overview

The btowc() function converts a single-byte character into a corresponding wide character. If the character is EOF or not valid in the initial shift state, btowc() returns WEOF.

The wctob() function converts a wide character into a corresponding single-byte character. If the wide character is WEOF or not able to be represented as a single byte in the initial shift state, wctob() returns EOF.

The _l-suffixed versions take an explicit locale argument, while the non-suffixed versions use the current global or per-thread locale.

Releases

56 releases since FreeBSD 5.0-RELEASE; the text changed 32 times.

  1. 5.0–6.3
  2. 6.4
  3. 7.0
  4. 7.1
  5. 7.2
  6. 7.3
  7. 7.4
  8. 8.0
  9. 8.1
  10. 8.2
  11. 8.3
  12. 8.4
  13. 9.0
  14. 9.1
  15. 9.2
  16. 9.3
  17. 10.0
  18. 10.1
  19. 10.2
  20. 10.3
  21. 10.4
  22. 11.0
  23. 11.1
  24. 11.2
  25. 11.3
  26. 11.4
  27. 12.0
  28. 12.1
  29. 12.2
  30. 12.3
  31. 12.4
  32. 13.0–13.2
  33. 13.3–16.0

Standards

The btowc() and wctob() functions conform to IEEE Std 1003.1-2001 (“POSIX.1”).

History

The btowc() and wctob() functions first appeared in FreeBSD 5.0.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.