WCRTOMB(3) | FreeBSD Library Functions Manual | WCRTOMB(3) |
名称
wcrtomb, c16rtomb, c32rtomb — 1 ワイド文字コードを 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 を表すマルチバイトシーケンスを格納します。s が NULL であるなら、これらの関数は、まるで 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 |