EN JA
WCRTOMB(3)
WCRTOMB(3) FreeBSD Library Functions Manual WCRTOMB(3)

名称

wcrtomb, c16rtomb, c32rtomb1 ワイド文字コードを 1 文字に変換する (再開可能)

ライブラリ

Standard C Library (libc, -lc)

書式

#include < wchar.h>

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

#include < uchar.h>

size_t
c16rtomb( char * restrict s, char16_t c, mbstate_t * restrict ps);

size_t
c32rtomb( char * restrict s, char32_t c, mbstate_t * restrict ps);

解説

wcrtomb(), c16rtomb() と c32rtomb() 関数は、最大 MB_CUR_MAX バイトを格納する、文字配列 s に、任意の必要なシフトシーケンスを含んで、ワイド文字 c を表すマルチバイトシーケンスを格納します。

sNULL であるなら、これらの関数は、まるで s が内部のバッファを指して、 c がヌルのワイド文字 ((L'\0') であるかのように振る舞います。

mbstate_t 引数 ps は、シフト状態の経過を追うために使用されます。それが NULL であるなら、これらの関数は、プログラムの開始時に初期の変換状態に初期化される、静的な mbstate_t オブジェクトを内部的に使用します。

特定のマルチバイト文字が単に一連の 16 ビット文字によって表わされるように、 c16rtomb() は、マルチバイトシーケンスが返される前に、複数回呼び出される必要があるかもしれません。

戻り値

これらの関数は、 c を表現するために必要なマルチバイトシーケンスの長さを (バイト単位) で返すか、または c が有効なワイド文字コードでないなら、 ( size_t)-1 を返します。

エラー

wcrtomb(), c16rtomb() と c32rtomb() 関数は、次の場合に失敗します:
[ EILSEQ]
無効のワイド文字コードが指定されました。
[ EINVAL]
変換状態は、無効です。

規格

wcrtomb(), c16rtomb() と c32rtomb() 関数は、 ISO/IEC 9899:2011 (“ISO C11”) に適合しています。
May 21, 2013 FreeBSD