语法

#include <stdlib.h>

int mblen(const char *s, size_t n);

属性

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

InterfaceAttributeValue
mblen()Thread safetyMT-Unsafe race
MBLEN - Linux手册页

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

名称

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

另外参见

mbrlen(3)

出版信息

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

说明

如果s不为NULL,则mblen()函数最多检查以s开头的多字节字符串的n个字节,并提取下一个完整的多字节字符。它使用仅mblen()函数已知的静态匿名移位状态。如果多字节字符不是全角字符,则它返回从s消耗的字节数。如果多字节字符为空宽字符,则返回0。

如果从s开头的n个字节不包含完整的多字节字符,则mblen()返回-1。即使多字节字符串包含冗余移位序列,即使n大于或等于MB_CUR_MAX,也会发生这种情况。

如果以s开头的多字节字符串在下一个完整字符之前包含无效的多字节序列,则mblen()还将返回-1。

如果s为NULL,则mblen()函数会将仅此函数已知的移位状态重置为初始状态,如果编码具有非平凡的移位状态,则返回非零;如果编码为无状态,则返回零。

备注

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

函数mbrlen(3)为相同的功能提供了更好的接口。

返回值

如果识别出非空宽度字符,则mblen()函数返回从s处开始的多字节序列解析的字节数。如果识别出一个空宽字符,则返回0。如果遇到无效的多字节序列或无法解析完整的多字节字符,则返回-1。

遵循规范

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

日期:2019-08-20 18:00:51 来源:oir作者:oir