| Main index | Section 3 | Options |
#include <wchar.h>
The mbstate_t argument, ps, is used to keep track of the shift state. If it is NULL, mbrlen() uses an internal, static 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 mbstate_t object to keep track of the shift state.
| 0 | The next n or fewer bytes represent the null wide character (L'\0'). |
| >0 | The next n or fewer bytes represent a valid character, mbrlen() returns the number of bytes used to complete the multibyte character. |
| (size_t )-2 | |
| The next n contribute to, but do not complete, a valid multibyte character sequence, and all n bytes have been processed. | |
| (size_t )-1 | |
| An encoding error has occurred. The next n or fewer bytes do not contribute to a valid multibyte character. | |
size_t
nchars(const char *s)
{
size_t charlen, chars;
mbstate_t mbs;
chars = 0;
memset(&mbs, 0, sizeof(mbs));
while ((charlen = mbrlen(s, MB_CUR_MAX, &mbs)) != 0 &&
charlen != (size_t)-1 && charlen != (size_t)-2) {
s += charlen;
chars++;
}
return (chars);
}
| [EILSEQ] | |
| An invalid multibyte sequence was detected. | |
| [EINVAL] | |
| The conversion state is invalid. | |
| MBRLEN (3) | April 7, 2004 |
| Main index | Section 3 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
