int mbsinit(const mbstate_t *ps);
If ps is not a null pointer, the mbsinit() function determines whether the object pointed to by ps describes an initial conversion state.
The mbsinit() function returns non-zero if ps is a null pointer, or if the pointed-to object describes an initial conversion state; otherwise, it returns 0.
If an mbstate_t object is altered by any of the functions described as "restartable", and is then used with a different character sequence, or in the other conversion direction, or with a different LC_CTYPE category setting than on earlier function calls, the behavior is undefined. See environ(5).
No errors are defined.
The mbstate_t object is used to describe the current conversion state from a particular character sequence to a wide-character sequence (or vice versa) under the rules of a particular setting of the LC_CTYPE category of the current locale.
The initial conversion state corresponds, for a conversion in either direction, to the beginning of a new character sequence in the initial shift state. A zero-valued mbstate_t object is at least one way to describe an initial conversion state. A zero-valued mbstate_t object can be used to initiate conversion involving any character sequence, in any LC_CTYPE category setting.
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
|MT-Level||MT-Safe with exceptions|
mbrlen(3C), mbrtowc(3C), mbsrtowcs(3C), setlocale(3C), wcrtomb(3C), wcsrtombs(3C), attributes(5), environ(5), standards(5)
The mbsinit() function can be used safely in multithreaded applications, as long as setlocale(3C) is not being called to change the locale.