MBSINIT(3)         Linux Programmer's Manual         MBSINIT(3)





NAME
       mbsinit - test for initial shift state

SYNOPSIS
       #include <wchar.h>

       int mbsinit (const mbstate_t* ps);

DESCRIPTION
       Character  conversion  between the multibyte representa-
       tion and the wide character representation uses  conver-
       sion  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  con-
       version  of a string.  There are two kinds of state: The
       one used by multibyte to wide character conversion func-
       tions, such as mbsrtowcs, and the one used by wide char-
       acter to multibyte conversion functions, such  as  wcsr-
       tombs,  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  gener-
       ate 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 cate-
       gory of the current locale.



GNU                      July 25, 1999               MBSINIT(3)
