Provided by: manpages-pt-dev_20040726-4_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.