plucky (3) mbsnrtowcs.3.gz

Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

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

書式

       #include <wchar.h>

       size_t mbsnrtowcs(wchar_t *dest, const char **src,
                         size_t nms, size_t len, mbstate_t *ps);

   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):

       mbsnrtowcs():
           glibc 2.10 以降:
               _POSIX_C_SOURCE >= 200809L
           glibc 2.10 より前:
               _GNU_SOURCE

説明

       mbsnrtowcs()  関数は mbsrtowcs(3) 関数に似ているが、変換するバイト数が *src から始まる最大 nms バイトに制
       限されている点が異なっている。

       dest が NULL でなければ mbsnrtowcs()  関数は *src からのマルチバイト文字列の最大 nms までを dest からのワ
       イド文字列に変換する。  最大  len  文字のワイド文字が dest に書き込まれる。 同時にシフト状態 *ps を更新す
       る。 変換は mbrtowc(dest, *src, n, ps) を、この呼び出しが成功する限り、繰り返し実行したのと実質的に同様で
       ある。 ここでの n は正の数であり、繰り返しごとに dest が 1 増加させられ、 *src が消費したバイト数だけ増加
       させられる。変換は以下の三つの いずれかの条件で停止する:

       1. 不正なマルチバイト列に遭遇した。この場合には    *src     は不正な     マルチバイト列を指すようにして、
          (size_t) -1 を返し、errnoEILSEQ を設定する。

       2. nms 制限によって強制的に停止するか、len 文字の L'\0' 以外の ワイド文字を dest に格納した場合。この場合
          は *src は 次に変換されるマルチバイト列を指すようにして、dest に書き込まれた ワイド文字の数を返す。

       3. マルチバイト文字列が終端のヌルワイド文字 ('\0')  まで含めて完全に変換された場合。  (この時、副作用とし
          て *ps が初期状態に戻される。)  この場合は *src には NULL が設定され、 dest に書き込まれた文字数 (終端
          の ヌルワイド文字は含まれない) を返す。

       According to POSIX.1, if the input buffer ends with an incomplete character, it  is  unspecified  whether
       conversion  stops  at the end of the previous character (if any), or at the end of the input buffer.  The
       glibc implementation adopts the former behavior.

       dest が NULL の場合、len は無視され、上記と同様の変換が  行われるが、変換されたワイド文字はメモリーに書き
       込まれず、変換先の上限 が存在しない。

       上記のどちらの場合でも、ps  が NULL ならば、 代りに mbsnrtowcs() 関数のみが使用する静的で名前のない状態が
       使用される。

       プログラマーは dest に最低でも len ワイド文字を書き込むこ  とができる空間があることを保証しなければならな
       い。

返り値

       mbsnrtowcs()  関数はワイド文字列に変換完了したワイド文字の数を返す。 終端のナルワイド文字は含まない。不正
       なマルチバイト列に遭遇した場合には (size_t) -1 を返し、errnoEILSEQ を設定する。

属性

       この節で使用されている用語の説明については、 attributes(7) を参照。

       ┌─────────────────┬───────────────┬───────────────────────────────┐
       │インターフェース属性                            │
       ├─────────────────┼───────────────┼───────────────────────────────┤
       │mbsnrtowcs()     │ Thread safety │ MT-Unsafe race:mbsnrtowcs/!ps │
       └─────────────────┴───────────────┴───────────────────────────────┘

準拠

       POSIX.1-2008.

注意

       mbsnrtowcs()  の動作は現在のロケールの LC_CTYPE カテゴリーに依存している。

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

関連項目

       iconv(3), mbrtowc(3), mbsinit(3), mbsrtowcs(3)

この文書について

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