MBTOWC - Linux手册页
时间:2019-08-20 18:00:52 来源:igfitidea点击:
Linux程序员手册 第3部分
更新日期: 2019-03-06
名称
mbtowc-将多字节序列转换为宽字符
语法
#include <stdlib.h> int mbtowc(wchar_t *pwc, const char *s, size_t n);
说明
此函数的主要情况是s不为NULL且pwc不为NULL时。在这种情况下,mbtowc()函数检查从s开始的多字节字符串中最多n个字节,提取下一个完整的多字节字符,将其转换为宽字符并将其存储在* pwc中。它更新仅mbtowc()函数已知的内部移位状态。如果s不指向空字节(aq \ 0aq),则返回s消耗的字节数,否则返回0。
如果从s开始的n个字节不包含完整的多字节字符,或者它们包含无效的多字节序列,则mbtowc()返回-1。即使多字节字符串包含冗余移位序列,即使n> = MB_CUR_MAX,也可能发生这种情况。
另一种情况是当s不为NULL但pwc为NULL时。在这种情况下,mbtowc()函数的行为如上所述,只是它不将转换后的宽字符存储在内存中。
第三种情况是当s为NULL时。在这种情况下,pwc和n被忽略。 mbtowc()函数将仅此函数已知的移位状态重置为初始状态,如果编码具有平凡的移位状态,则返回非零;如果编码为无状态,则返回零。
返回值
如果s不为NULL,则mbtowc()函数返回从s开始的已消耗字节数;如果s指向空字节,则返回0;如果失败则返回-1。
如果s为NULL,则当编码具有非平移状态时,mbtowc()函数返回非零;如果编码为无状态,则mbtowc()函数返回零。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
mbtowc() | Thread safety | MT-Unsafe race |
遵循规范
POSIX.1-2001,POSIX.1-2008,C99。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。