WCSTOMBS - Linux手册页

时间:2019-08-20 18:01:39  来源:igfitidea点击:

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

名称

wcstombs-将宽字符字符串转换为多字节字符串

语法

#include <stdlib.h>

size_t wcstombs(char *dest, const wchar_t *src, size_t n);

说明

如果dest不为NULL,则wcstombs()函数将宽字符字符串src转换为以dest开始的多字节字符串。最多n个字节被写入dest。放置在dest中的字符序列从初始移位状态开始。转换可能由于以下三个原因而停止:

1.
遇到了一个宽字符,无法将其表示为多字节序列(根据当前语言环境)。在这种情况下,将返回(size_t)-1。
2.
长度限制强制停止。在这种情况下,将返回写入dest的字节数,但是此时的移位状态将丢失。
3.
宽字符字符串已完全转换,包括终止的空宽字符(Laq \ 0aq)。在这种情况下,转换以初始变速状态结束。返回除终止空字节(aq \ 0aq)外的写入dest的字节数。

程序员必须确保目标处至少有n个字节的空间。

如果dest为NULL,则n将被忽略,并且转换按上述方式进行,只是转换后的字节不会写到内存中,并且不存在长度限制。

为了避免上述情况2,程序员应确保n大于或等于wcstombs(NULL,src,0)+1。

返回值

wcstombs()函数返回组成多字节序列的已转换部分的字节数,不包括终止的空字节。如果遇到无法转换的宽字符,则返回(size_t)-1。

属性

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

InterfaceAttributeValue
wcstombs()Thread safetyMT-Safe

遵循规范

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

备注

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

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

另外参见

mblen(3),mbstowcs(3),mbtowc(3),wcsrtombs(3),wctomb(3)

出版信息

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