语法

#include <wchar.h>

size_t wcrtomb(char *s, wchar_t wc, mbstate_t *ps);

属性

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

InterfaceAttributeValue
wcrtomb()Thread safetyMT-Unsafe race:wcrtomb/!ps
WCRTOMB - Linux手册页

Linux程序员手册 第3部分
更新日期: 2019-03-06

出版信息

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

备注

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

作为ps传递NULL不是多线程安全的。

名称

wcrtomb-将宽字符转换为多字节序列

说明

此函数的主要情况是s不为NULL且wc不是空宽字符(Laq \ 0aq)。在这种情况下,wcrtomb()函数将宽字符wc转换为其多字节表示形式,并将其存储在s所指向的字符数组的开头。它更新移位状态* ps,并返回所述多字节表示的长度,即,以s写入的字节数。

另一种情况是s不为NULL,而wc为空宽字符(Laq \ 0aq)。在这种情况下,wcrtomb()函数将s指向的字符数组存储使* ps返回初始状态所需的移位序列,后跟aq \ 0aq字节。它更新移位状态* ps(即使其进入初始状态),并返回移位序列的长度加1,即在s处写入的字节数。

第三种情况是当s为NULL时。在这种情况下,将忽略wc,并且该函数有效地返回

wcrtomb(buf,Laq \ 0aq,ps)

其中buf是内部匿名缓冲区。

在上述所有情况下,如果ps为NULL,则使用仅wcrtomb()函数已知的静态匿名状态。

另外参见

mbsinit(3),wcsrtombs(3)

遵循规范

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

返回值

wcrtomb()函数返回在s处已写入或将要写入字节数组的字节数。如果wc不能表示为多字节序列(根据当前语言环境),则返回(size_t)-1,并将errno设置为EILSEQ。

日期:2019-08-20 18:01:37 来源:oir作者:oir