返回值

如果* ps为初始状态,或者ps为NULL,则mbsinit()返回非零。否则,它返回0。

另外参见

mbrlen(3),mbrtowc(3),mbsrtowcs(3),wcrtomb(3),wcsrtombs(3)

语法

#include <wchar.h>

int mbsinit(const mbstate_t *ps);

说明

多字节表示形式和宽字符表示形式之间的字符转换使用mbstate_t类型的转换状态。字符串转换使用有限状态机。当在完全转换多个字符后中断它时,可能需要保存一个状态以处理其余字符。为了进行编码(例如ISO-2022和UTF-7),需要这种转换状态。

初始状态是字符串转换开始时的状态。状态有两种:一种由多字节到宽字符转换功能(例如mbsrtowcs(3))使用,一种由宽字符到多字节转换功能(例如wcsrtombs(3))使用,但是它们都适合mbstate_t,并且它们对于初始状态都具有相同的表示形式。

对于8位编码,所有状态都等同于初始状态。对于UTF-8,EUC-*,BIG5或SJIS等多字节编码,宽字符到多字节的转换函数绝不会产生非初始状态,但是mbrtowc(3)等多字节到宽字符的转换函数却会产生非初始状态。在字符中间打断时。

在初始状态下创建mbstate_t的一种可能方法是将其设置为零:

mbstate_t state;
memset(&state,0,sizeof(mbstate_t));

在Linux上,以下操作也可以,但可能会生成编译器警告:

mbstate_t state = { 0 };

函数mbsinit()测试* ps是否对应于初始状态。

出版信息

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

属性

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

InterfaceAttributeValue
mbsinit()Thread safetyMT-Safe

备注

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

名称

mbsinit-测试初始换档状态

MBSINIT - Linux手册页

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

遵循规范

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

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