#include <wchar.h> size_t wcrtomb(char *s, wchar_t wc, mbstate_t *ps);
別のケースとしては、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() | Thread safety | MT-Unsafe race:wcrtomb/!ps |
ps に NULL を渡した際の動作はマルチスレッドセーフでない。
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]