The mbrlen function inspects at most n bytes pointed to by s to determine the number of bytes needed to complete the next multibyte character.
.Vt mbstate_t argument, ps, is used to keep track of the shift state. If it is NULL, mbrlen uses an internal, static
.Vt mbstate_t object, which is initialized to the initial conversion state at program startup.
It is equivalent to:
"mbrtowc(NULL, s, n, ps);"
Except that when ps is a NULL pointer, mbrlen uses its own static, internal
.Vt mbstate_t object to keep track of the shift state.
The mbrlen functions returns: