x SuSE Linux 13.1-RELEASE x
x SuSE Linux 13.1-RELEASEx
mbsinit(3) Library Functions Manual mbsinit(3)
NAME
mbsinit - test for initial shift state
LIBRARY
Standard C library (libc, -lc)
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 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
character 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(state));
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 nonzero if *ps is an initial state, or if ps is NULL.
Otherwise, it returns 0.
ATTRIBUTES
For an explanation of the terms used in this section, see at-
tributes(7).
+--------------------------------------------+---------------+---------+
|Interface | Attribute | Value |
+--------------------------------------------+---------------+---------+
|mbsinit() | Thread safety | MT-Safe |
+--------------------------------------------+---------------+---------+
STANDARDS
C11, POSIX.1-2008.
HISTORY
POSIX.1-2001, C99.
NOTES
The behavior of mbsinit() depends on the LC_CTYPE category of the cur-
rent locale.
SEE ALSO
mbrlen(3), mbrtowc(3), mbsrtowcs(3), wcrtomb(3), wcsrtombs(3)
Linux man-pages 6.04 2023-03-30 mbsinit(3)
Want to link to this manual page? Use this URL:
<https://star2.abcm.com/cgi-bin/bsdi-man?query=mbsinit&sektion=3&manpath=>