MBRLEN - Linux手册页

时间:2019-08-20 18:00:51  来源:igfitidea点击:

Linux程序员手册 第3部分
更新日期: 2015-08-08

名称

mbrlen-确定下一个多字节字符中的字节数

语法

#include <wchar.h>

size_t mbrlen(const char *s, size_t n, mbstate_t *ps);

说明

mbrlen()函数检查从s开始的多字节字符串中最多n个字节,并提取下一个完整的多字节字符。它更新移位状态* ps。如果多字节字符不是全角字符,则它返回从s消耗的字节数。如果多字节字符为空宽字符,则它将移位状态* ps重置为初始状态并返回0。

如果以s开头的n个字节不包含完整的多字节字符,则mbrlen()返回(size_t)-2。即使多字节字符串包含冗余移位序列,即使n> = MB_CUR_MAX,也可能发生这种情况。

如果以s开头的多字节字符串在下一个完整字符之前包含无效的多字节序列,则mbrlen()返回(size_t)-1,并将errno设置为EILSEQ。在这种情况下,对* ps的影响是不确定的。

如果ps为NULL,则使用仅mbrlen()函数已知的静态匿名状态。

返回值

如果识别出非空宽度字符,则mbrlen()函数返回从以s开头的多字节序列中解析的字节数。如果识别出一个空宽字符,则返回0。如果遇到无效的多字节序列,它将返回(size_t)-1,并将errno设置为EILSEQ。如果无法解析完整的多字节字符,则返回(size_t)-2,这意味着应增加n。

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
mbrlen()Thread safetyMT-Unsafe race:mbrlen/!ps

遵循规范

POSIX.1-2001,POSIX.1-2008,C99。

备注

mbrlen()的行为取决于当前语言环境的LC_CTYPE类别。

另外参见

mbrtowc(3)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/