Provided by: manpages-pt-dev_20040726-5_all bug

NAME

       mbsinit - test for initial shift state

SYNOPSIS

       #include <wchar.h>

       int mbsinit (const mbstate_t *ps);

DESCRIPTION

       Character  conversion  between  the  multibyte  representation and the wide character representation uses
       conversion state, of type mbstate_t.  Conversion of a string uses a  finite-state  machine;  when  it  is
       interrupted  after  the  complete  conversion  of a number of characters, it may need to save a state for
       processing the remaining characters. Such a conversion state is needed for the sake of encodings such  as
       ISO-2022 and SJIS.

       The initial state is the state at the beginning of conversion of a string.  There are two kinds of state:
       The  one used by multibyte to wide character conversion functions, such as mbsrtowcs, and the one used by
       wide character to multibyte conversion functions, such as wcsrtombs, but they both fit  in  a  mbstate_t,
       and they both have the same representation for an initial state.

       For 8-bit or UTF-8 encodings, all states are equivalent to the initial state.

       One possible way to create an mbstate_t in initial state is to set it to zero:
         mbstate_t state;
         memset(&state,0,sizeof(mbstate_t));
       On Linux, the following works as well, but might generate compiler warnings:
         mbstate_t state = { 0 };

       The function mbsinit tests whether *ps corresponds to an initial state.

RETURN VALUE

       mbsinit returns non-zero if *ps is an initial state, or if ps is a null pointer. Otherwise it returns 0.

CONFORMING TO

       ISO/ANSI C, UNIX98

SEE ALSO

       mbsrtowcs(3), wcsrtombs(3)

NOTES

       The behaviour of mbsinit depends on the LC_CTYPE category of the current locale.

GNU                                               July 25, 1999                                       MBSINIT(3)