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 POSIX.1-2001, POSIX.1-2008, 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.03 2022-12-15 mbsinit(3)
Generated by dwww version 1.15 on Thu Jun 27 09:27:22 CEST 2024.