Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


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


     mbsinit - test for initial shift state


     #include <wchar.h>
     int mbsinit(const mbstate_t *ps);


     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 inter-
     rupted 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 UTF-7.
     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(3), and the one
     used by wide character to multibyte conversion functions, such as wcsr-
     tombs(3), but they both fit in a mbstate_t, and they both have the same
     representation for an initial state.
     For 8-bit encodings, all states are equivalent to  the  initial  state.
     For multibyte encodings like UTF-8, EUC-*, BIG5 or SJIS, the wide char-
     acter to  multibyte  conversion  functions  never  produce  non-initial
     states,  but  the multibyte to wide-character conversion functions like
     mbrtowc(3) do produce non-initial states when interrupted in the middle
     of a character.
     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
         mbstate_t state = { 0 };
     The  function  mbsinit()  tests  whether  *ps corresponds to an initial


     mbsinit() returns nonzero if *ps is an initial state, or if ps is NULL.
     Otherwise, it returns 0.


     For   an   explanation   of   the  terms  used  in  this  section,  see
     |Interface | Attribute     | Value   |
     |mbsinit() | Thread safety | MT-Safe |


     POSIX.1-2001, POSIX.1-2008, C99.


     The behavior of mbsinit() depends on the LC_CTYPE category of the  cur-
     rent locale.


     mbrlen(3), mbrtowc(3), mbsrtowcs(3), wcrtomb(3), wcsrtombs(3)


     This  page  is  part of release 4.16 of the Linux man-pages project.  A
     description of the project, information about reporting bugs,  and  the
     latest     version     of     this    page,    can    be    found    at

GNU 2016-10-08 MBSINIT(3)

/data/webs/external/dokuwiki/data/pages/man/mbsinit.txt · Last modified: 2019/05/17 09:47 by

Was this page helpful?-10+1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki