| MBSRTOWCS(3) | Library Functions Manual | MBSRTOWCS(3) | 
mbsrtowcs —
#include <wchar.h>
size_t
  
  mbsrtowcs(wchar_t
    * restrict pwcs, const
    char ** restrict s,
    size_t n,
    mbstate_t * restrict
  ps);
mbsrtowcs() converts the multibyte character string
  indirectly pointed to by s to the corresponding
  wide-character string, and stores it in the array pointed to by
  pwcs. The conversion stops due to the following reasons:
mbsrtowcs() has already stored
      n wide characters.Each character will be converted as if mbrtowc(3) is continuously called.
After conversion, if pwcs is not a null pointer, the pointer object pointed to by s is a null pointer (if the conversion is stopped due to reaching a nul byte) or the first byte of the character just after the last character converted.
If pwcs is not a null pointer and the
    conversion is stopped due to reaching a nul byte, the
    mbsrtowcs() places the state object pointed to by
    ps to an initial state after the conversion has taken
    place.
The behaviour of mbsrtowcs() is affected
    by the LC_CTYPE category of the current locale.
These are the special cases:
mbsrtowcs() uses its own internal state object
      to keep the conversion state, instead of ps
      mentioned in this manual page.
    Calling any other functions in Standard
        C Library (libc, -lc) never changes the internal state of
        mbsrtowcs(), which is initialized at startup
        time of the program.
mbsrtowcs() returns:
NULL and the value returned is equal to
      n, the wide-character string pointed to by
      pwcs is not nul-terminated. If
      pwcs is a null pointer, the value returned is the
      number of elements to contain the whole string converted, except for a
      terminating nul wide character.mbsrtowcs() sets errno to
      indicate the error.mbsrtowcs() may cause an error in the following case:
mbsrtowcs() function conforms to
  ISO/IEC 9899/AMD1:1995 (“ISO C90, Amendment
  1”). The restrict qualifier is added at ISO/IEC
  9899:1999 (“ISO C99”).
| February 4, 2002 | NetBSD 9.3 |