wctomb(3)

wctomb3

Convert a wide-character code to a character

Usage

#include <stdlib.h>

int

wctomb(char *mbchar, wchar_t wchar);

Library

Standard C Library (libc, -lc)

Overview

The wctomb() function converts a wide character wchar into a multibyte character and stores the result in mbchar. The object pointed to by mbchar must be large enough to accommodate the multibyte character, which may be up to MB_LEN_MAX bytes.

A call with a null mbchar pointer returns nonzero if the current locale requires shift states, zero otherwise; if shift states are required, the shift state is reset to the initial state.

Return values

If mbchar is NULL, the wctomb() function returns nonzero if shift states are supported, zero otherwise. If mbchar is valid, wctomb() returns the number of bytes processed in mbchar, or -1 if no multibyte character could be recognized or converted. In this case, wctomb(Ns, 's) internal conversion state is undefined.

Errors

The wctomb() function will fail if:

[EILSEQ]

An invalid multibyte sequence was detected.

[EINVAL]

The internal conversion state is invalid.

Releases

83 releases since FreeBSD 2.2.2-RELEASE; the text changed 44 times.

  1. 2.2.2
  2. 2.2.5–3.4
  3. 3.5–3.5.1
  4. 4.0
  5. 4.1–4.2
  6. 4.3
  7. 4.4
  8. 4.5–4.11
  9. 5.0
  10. 5.1
  11. 5.2–5.2.1
  12. 5.3–6.3
  13. 6.4
  14. 7.0
  15. 7.1
  16. 7.2
  17. 7.3
  18. 7.4
  19. 8.0
  20. 8.1
  21. 8.2
  22. 8.3
  23. 8.4
  24. 9.0
  25. 9.1
  26. 9.2
  27. 9.3
  28. 10.0
  29. 10.1
  30. 10.2
  31. 10.3
  32. 10.4
  33. 11.0
  34. 11.1
  35. 11.2
  36. 11.3
  37. 11.4
  38. 12.0
  39. 12.1
  40. 12.2
  41. 12.3
  42. 12.4
  43. 13.0–13.2
  44. 13.3–14.5
  45. 15.0–16.0

Standards

The wctomb() function conforms to ISO/IEC 9899:1999 (“ISO C99”).

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