WCRTOMB - Linux手册页
时间:2019-08-20 18:01:37 来源:igfitidea点击:
Linux程序员手册 第3部分
更新日期: 2019-03-06
名称
wcrtomb-将宽字符转换为多字节序列
语法
#include <wchar.h> size_t wcrtomb(char *s, wchar_t wc, mbstate_t *ps);
说明
此函数的主要情况是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()函数已知的静态匿名状态。
返回值
wcrtomb()函数返回在s处已写入或将要写入字节数组的字节数。如果wc不能表示为多字节序列(根据当前语言环境),则返回(size_t)-1,并将errno设置为EILSEQ。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
wcrtomb() | Thread safety | MT-Unsafe race:wcrtomb/!ps |
遵循规范
POSIX.1-2001,POSIX.1-2008,C99。
备注
wcrtomb()的行为取决于当前语言环境的LC_CTYPE类别。
作为ps传递NULL不是多线程安全的。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。