WCRTOMB

Section: Linux Programmer's Manual (3)
Updated: 2019-03-06
Index JM Home Page
 

名前

wcrtomb - ワイド文字 1 つをマルチバイト列に変換する  

書式

#include <wchar.h>

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

説明

この関数が主に使われるのは、s が NULL でなく、 wc がヌルワイド文字 (L'\0') でない場合である。 この場合には、 wcrtomb() 関数はワイド文字 wc をマルチバイト表 現に変換し、s が指す char 型の配列にこれを格納する。この関数は シフト状態 *ps を更新し、出力されたマルチバイト表現の長さ、すな わち s に書き込まれたバイト数を返す。

別のケースとしては、s は NULL でないが wc がヌルワイド文字 (L'\0') のことがある。 この場合の wcrtomb() 関数は、*ps を初期状態に戻すのに必 要なシフトシーケンスを s が指す char 型配列に格納し、その後に '\0' を格納する。この関数はシフト状態 *ps を更新し(つまり初期状態に戻 し)、シフトシーケンスの長さに 1 を加えた値を返す。この値は s に 書き込まれたバイト数である。

三番目のケースは、s が NULL の時である。 この場合には wc は無視され、関数の実際の動きとしては


    wcrtomb(buf, L'\0', ps)

が返される。ここで、 buf は内部的な無名バッファーである。

以上のいずれの場合も、ps が NULL ならばシフト状態は用い られず、 wcrtomb() 関数だけが知っている静的な匿名の状態が使われる。  

返り値

wcrtomb() 関数は、s が指すバイト列に書き込まれたバイト数、あ るいは書き込まれたであろうバイト数を返す。wc を(現在のロケールに 従って)マルチバイト列で表現できなければ、 (size_t) -1 が返され、 errno に EILSEQ が設定される。  

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
wcrtomb() Thread safety MT-Unsafe race:wcrtomb/!ps

 

準拠

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

注意

wcrtomb() の動作は、現在のロケールの LC_CTYPE カテゴリーに依存する。

ps に NULL を渡した際の動作はマルチスレッドセーフでない。  

関連項目

mbsinit(3), wcsrtombs(3)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

シフト   バイト   wcrtomb   マルチバイト   格納   ワイド   wchar   ヌルワイド   表現   ケース   初期   シーケンス   ロケール   mbstate   実際   内部的   無名   バッファー   以上   匿名   size   用語   allbox   インターフェース   属性

Linux マニュアル 一覧

関連するコマンド・関数

mblen.3   wctomb.3   wcsrtombs.3   mbrtowc.3   mbtowc.3   wcsnrtombs.3
 

Index

名前
書式
説明
返り値
属性
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:09 GMT, October 11, 2026