mbtowc(3)

mbtowc3

Convert a character to a wide-character code

Usage

#include <stdlib.h>

int

mbtowc(wchar_t *restrict pwc, const char *restrict s, size_t n);

#include <stdlib.h>

#include <xlocale.h>

int

mbtowc_l(wchar_t *restrict pwc, const char *restrict s, size_t n, locale_t loc);

Library

Standard C Library (libc, -lc)

Overview

The mbtowc() function converts a multibyte character s into a wide character, according to the current conversion state, and stores the result in the object pointed to by pwc. Up to n bytes are examined.

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

While the mbtowc() function uses the current locale, the mbtowc_l() function may be passed a locale directly. See xlocale(3) for more information.

Return values

If s is NULL, the mbtowc() function returns nonzero if shift states are supported, zero otherwise.

Otherwise, if s is not a null pointer, mbtowc() either returns 0 if s represents the null wide character, or returns the number of bytes processed in s, or returns -1 if no multibyte character could be recognized or converted. In this case, mbtowc(Ns, 's) internal conversion state is undefined.

Errors

The mbtowc() function will fail if:

[EILSEQ]

An invalid multibyte sequence was detected.

[EINVAL]

The internal conversion state is invalid.

Releases

135 releases since Mac OS X 10.4; the text changed 2 times.

  1. 10.4–10.4.11
  2. 10.5–10.6.8
  3. 10.7–26.5

Standards

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

From Libc 1752.120.2 in macOS 26.5. Parsed by carta from the page's mdoc source.