+" if (readwrite && readonly) {\n"
+" fprintf(stderr, \"Only one of \\(aq%s\\(aq and \\(aq%s\\(aq can be \"\n"
+" \"specified\\en\", token[RO_OPT], token[RW_OPT]);\n"
+" errfnd = 1;\n"
+" }\n"
+" break;\n"
+
+#. type: Plain text
+#: build/C/man3/getsubopt.3:214
+#, no-wrap
+msgid ""
+" default:\n"
+" errfnd = 1;\n"
+" }\n"
+" }\n"
+msgstr ""
+" default:\n"
+" errfnd = 1;\n"
+" }\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man3/getsubopt.3:221
+#, no-wrap
+msgid ""
+" if (errfnd || argc == 1) {\n"
+" fprintf(stderr, \"\\enUsage: %s -o E<lt>suboptstringE<gt>\\en\", argv[0]);\n"
+" fprintf(stderr, \"suboptions are \\(aqro\\(aq, \\(aqrw\\(aq, \"\n"
+" \"and \\(aqname=E<lt>valueE<gt>\\(aq\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if (errfnd || argc == 1) {\n"
+" fprintf(stderr, \"\\enUsage: %s -o E<lt>suboptstringE<gt>\\en\", argv[0]);\n"
+" fprintf(stderr, \"suboptions are \\(aqro\\(aq, \\(aqrw\\(aq, \"\n"
+" \"and \\(aqname=E<lt>valueE<gt>\\(aq\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man3/getsubopt.3:223
+#, no-wrap
+msgid " /* Remainder of program... */\n"
+msgstr " /* Remainder of program... */\n"
+
+#. type: Plain text
+#: build/C/man3/getsubopt.3:229
+msgid "B<getopt>(3)"
+msgstr "B<getopt>(3)"
+
+#. type: TH
+#: build/C/man3/malloc.3:30
+#, no-wrap
+msgid "MALLOC"
+msgstr "MALLOC"
+
+#. type: TH
+#: build/C/man3/malloc.3:30
+#, no-wrap
+msgid "2013-12-12"
+msgstr "2013-12-12"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:33
+msgid "malloc, free, calloc, realloc - allocate and free dynamic memory"
+msgstr "malloc, free, calloc, realloc - 動的なメモリの割り当てと解放を行う"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:41
+#, no-wrap
+msgid ""
+"B<void *malloc(size_t >I<size>B<);>\n"
+"B<void free(void >I<*ptr>B<);>\n"
+"B<void *calloc(size_t >I<nmemb>B<, size_t >I<size>B<);>\n"
+"B<void *realloc(void >I<*ptr>B<, size_t >I<size>B<);>\n"
+msgstr ""
+"B<void *malloc(size_t >I<size>B<);>\n"
+"B<void free(void >I<*ptr>B<);>\n"
+"B<void *calloc(size_t >I<nmemb>B<, size_t >I<size>B<);>\n"
+"B<void *realloc(void >I<*ptr>B<, size_t >I<size>B<);>\n"
+
+#. glibc does this:
+#. type: Plain text
+#: build/C/man3/malloc.3:58
+msgid ""
+"The B<malloc>() function allocates I<size> bytes and returns a pointer to "
+"the allocated memory. I<The memory is not initialized>. If I<size> is 0, "
+"then B<malloc>() returns either NULL, or a unique pointer value that can "
+"later be successfully passed to B<free>()."
+msgstr ""
+"B<malloc>() 関数は I<size> バイトを割り当て、 割り当てられたメモリに対する\n"
+"ポインタを返す。I<メモリの内容は初期化されない>。 I<size> が 0 の場合、\n"
+"B<malloc>() は NULL または B<free>() に後で渡しても問題の起こらない\n"
+"一意なポインタ値を返す。"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:74
+msgid ""
+"The B<free>() function frees the memory space pointed to by I<ptr>, which "
+"must have been returned by a previous call to B<malloc>(), B<calloc>() or "
+"B<realloc>(). Otherwise, or if I<free(ptr)> has already been called before, "
+"undefined behavior occurs. If I<ptr> is NULL, no operation is performed."
+msgstr ""
+"B<free>() 関数はポインタ I<ptr> が指すメモリ空間を解放する。このポインタ"
+"は、\n"
+"以前に呼び出された B<malloc>(), B<calloc>(), B<realloc>() のいずれかが返した"
+"値で\n"
+"なければならない。これ以外のポインタを指定したり、すでに I<free(ptr)> が実"
+"行\n"
+"されていたりした場合の動作は定義されていない。\n"
+"I<ptr> が NULL の場合には、何の動作も行われない。"
+
+#. glibc does this:
+#. type: Plain text
+#: build/C/man3/malloc.3:93
+msgid ""
+"The B<calloc>() function allocates memory for an array of I<nmemb> elements "
+"of I<size> bytes each and returns a pointer to the allocated memory. The "
+"memory is set to zero. If I<nmemb> or I<size> is 0, then B<calloc>() "
+"returns either NULL, or a unique pointer value that can later be "
+"successfully passed to B<free>()."
+msgstr ""
+"B<calloc>() 関数は I<size> バイトの要素 I<nmemb> 個からなる配列にメモリを\n"
+"割り当て、割り当てられたメモリに対するポインタを返す。 メモリの内容は数値ゼ"
+"ロ\n"
+"(全ビットが 0 のバイト) にセットされる。 I<nmemb> か I<size> が 0 の場合、\n"
+"B<calloc>() は NULL または B<free>() に後で渡しても問題の起こらない一意な\n"
+"ポインタ値を返す。"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:129
+msgid ""
+"The B<realloc>() function changes the size of the memory block pointed to "
+"by I<ptr> to I<size> bytes. The contents will be unchanged in the range "
+"from the start of the region up to the minimum of the old and new sizes. If "
+"the new size is larger than the old size, the added memory will I<not> be "
+"initialized. If I<ptr> is NULL, then the call is equivalent to I<malloc"
+"(size)>, for all values of I<size>; if I<size> is equal to zero, and I<ptr> "
+"is not NULL, then the call is equivalent to I<free(ptr)>. Unless I<ptr> is "
+"NULL, it must have been returned by an earlier call to B<malloc>(), B<calloc>"
+"() or B<realloc>(). If the area pointed to was moved, a I<free(ptr)> is "
+"done."
+msgstr ""
+"B<realloc>() は、ポインタ I<ptr> が示すメモリブロックのサイズを I<size> バイ"
+"ト\n"
+"に変更する。領域の先頭から、新旧のサイズの小さい方の位置までの範囲の内容は\n"
+"変更されない。新しいサイズが前のサイズよりも大きい場合、追加されたメモリは\n"
+"初期化 I<されない>。\n"
+"I<ptr> が NULL の場合には I<malloc(size)> と等価である。\n"
+"I<size> が 0 で I<ptr> が NULL でない場合には、 I<free(ptr)> と等価である。\n"
+"I<ptr> が NULL 以外の場合、 I<ptr> は以前に呼び出された B<malloc>(), "
+"B<calloc>(),\n"
+"B<realloc>() のいずれかが返した値でなければならない。\n"
+"I<ptr> が指す領域が移動されていた場合は I<free(ptr)> が実行される。"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:149
+msgid ""
+"The B<malloc>() and B<calloc>() functions return a pointer to the "
+"allocated memory, which is suitably aligned for any built-in type. On "
+"error, these functions return NULL. NULL may also be returned by a "
+"successful call to B<malloc>() with a I<size> of zero, or by a successful "
+"call to B<calloc>() with I<nmemb> or I<size> equal to zero."
+msgstr "関数 B<calloc>() と B<malloc>() は、割り当てられたメモリへのポインタを返す。 割り当てられたメモリは、あらゆる組み込み型に対応できるようにアラインメントされる。 エラーの場合、これらの関数は NULL を返す。 I<size> が 0 で呼び出した B<malloc>() や、I<nmemb> か I<size> が 0 で呼び出した B<calloc>() が成功した場合にも NULL が返される。"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:153
+msgid "The B<free>() function returns no value."
+msgstr "B<free>() 関数は値を返さない。"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:168
+msgid ""
+"The B<realloc>() function returns a pointer to the newly allocated memory, "
+"which is suitably aligned for any built-in type and may be different from "
+"I<ptr>, or NULL if the request fails. If I<size> was equal to 0, either "
+"NULL or a pointer suitable to be passed to B<free>() is returned. If "
+"B<realloc>() fails the original block is left untouched; it is not freed or "
+"moved."
+msgstr "B<realloc>() 関数は新たに割り当てられたメモリへのポインタを返す。 これはあらゆる組み込み型に対応できるようにアラインメントされており、 I<ptr> とは異なることもある。割り当て要求に失敗した場合は NULL が返る。 I<size> が 0 の場合には、NULL もしくは B<free>() に渡すことができるポインタが返る。 B<realloc>() が失敗した場合には、元のブロックは変更されない。 つまり、解放されたり移動されたりはしない。"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:170
+msgid "C89, C99."
+msgstr "C89, C99."
+
+#. type: Plain text
+#: build/C/man3/malloc.3:186
+msgid ""
+"By default, Linux follows an optimistic memory allocation strategy. This "
+"means that when B<malloc>() returns non-NULL there is no guarantee that the "
+"memory really is available. In case it turns out that the system is out of "
+"memory, one or more processes will be killed by the OOM killer. For more "
+"information, see the description of I</proc/sys/vm/overcommit_memory> and I</"
+"proc/sys/vm/oom_adj> in B<proc>(5), and the Linux kernel source file "
+"I<Documentation/vm/overcommit-accounting>."
+msgstr ""
+"デフォルトでは、Linux は楽観的メモリ配置戦略を用いている。つまり、\n"
+"B<malloc>() が NULL でない値を返しても、そのメモリが実際に利用可能であるこ"
+"と\n"
+"が保証されない。システムがメモリ不足状態になったとき、メモリ不足解決器 (OOM\n"
+"killer) によって一つまたは複数のプロセスが削除される。\n"
+"詳しい情報は、B<proc>(5) の I</proc/sys/vm/overcommit_memory> と\n"
+"I<proc/sys/vm/oom_adj>、および Linux カーネルのソースファイルの\n"
+"I<Documentation/vm/overcommit-accounting> を参照のこと。"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:207
+msgid ""
+"Normally, B<malloc>() allocates memory from the heap, and adjusts the size "
+"of the heap as required, using B<sbrk>(2). When allocating blocks of memory "
+"larger than B<MMAP_THRESHOLD> bytes, the glibc B<malloc>() implementation "
+"allocates the memory as a private anonymous mapping using B<mmap>(2). "
+"B<MMAP_THRESHOLD> is 128 kB by default, but is adjustable using B<mallopt>"
+"(3). Allocations performed using B<mmap>(2) are unaffected by the "
+"B<RLIMIT_DATA> resource limit (see B<getrlimit>(2))."
+msgstr ""
+"通常、 B<malloc>() は、ヒープからメモリを割り当て、必要に応じてヒープのサイ"
+"ズを B<sbrk>(2) を使って調節する。 B<MMAP_THRESHOLD> バイトよりも大きなメモ"
+"リブロックを割り当てる場合、 glibc の B<malloc>() 実装は B<mmap>(2) を使っ"
+"てプライベートな無名マッピング (anonymous mapping) として メモリを割り当て"
+"る。 デフォルトでは B<MMAP_THRESHOLD> は 128 kB だが、 B<mallopt>(3) を使っ"
+"て調整できる。 B<mmap>(2) を使って行われたメモリ割り当ては B<RLIMIT_DATA> リ"
+"ソース上限の影響を受けない (B<getrlimit>(2) 参照)。"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:225
+msgid ""
+"To avoid corruption in multithreaded applications, mutexes are used "
+"internally to protect the memory-management data structures employed by "
+"these functions. In a multithreaded application in which threads "
+"simultaneously allocate and free memory, there could be contention for these "
+"mutexes. To scalably handle memory allocation in multithreaded "
+"applications, glibc creates additional I<memory allocation arenas> if mutex "
+"contention is detected. Each arena is a large region of memory that is "
+"internally allocated by the system (using B<brk>(2) or B<mmap>(2)), and "
+"managed with its own mutexes."
+msgstr ""
+"マルチスレッドアプリケーションでのデータ破損を回避するため、内部では mutex"
+"を\n"
+"使用して、これらの関数で利用されるメモリ管理用のデータ構造を保護している。\n"
+"複数のスレッドが同時にメモリの確保や解放を行うようなマルチスレッドアプリ"
+"ケー\n"
+"ションでは、これらの mutex の衝突が起こり得る。マルチスレッドアプリケーショ"
+"ン\n"
+"でのメモリ割り当て処理にスケーラビリティを持たせるために、glibc では mutex "
+"の\n"
+"衝突が検出された際には追加の I<メモリ割り当て領域> を作成する。\n"
+"追加領域の各々は、(B<brk>(2) や B<mmap>(2) を使って) システムにより内部的に\n"
+"割り当てられた大きな領域で、それぞれ独自の mutex により管理されている。"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:243
+msgid ""
+"The UNIX 98 standard requires B<malloc>(), B<calloc>(), and B<realloc>() to "
+"set I<errno> to B<ENOMEM> upon failure. Glibc assumes that this is done "
+"(and the glibc versions of these routines do this); if you use a private "
+"malloc implementation that does not set I<errno>, then certain library "
+"routines may fail without having a reason in I<errno>."
+msgstr ""
+"UNIX 98 標準では、 B<malloc>(), B<calloc>(), B<realloc>() は実行に失敗したと"
+"きに I<errno> を B<ENOMEM> に設定することになっている。 Glibc ではこれが守ら"
+"れていることを仮定している (またこれらのルーチンの glibc バージョンはこのこと"
+"を守っている)。 個人的に別の malloc の実装を使っていて、その malloc が"
+"I<errno> を設定しない場合には、失敗した際に I<errno> にエラーの理由を設定しな"
+"いライブラリルーチンがあるかもしれない。"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:252
+msgid ""
+"Crashes in B<malloc>(), B<calloc>(), B<realloc>(), or B<free>() are almost "
+"always related to heap corruption, such as overflowing an allocated chunk or "
+"freeing the same pointer twice."
+msgstr ""
+"B<malloc>(), B<calloc>(), B<realloc>(), B<free>() における事故は、 ほとんど"
+"の場合はヒープの破壊 (corruption) が原因である。 例えば、割り当てられた領域を"
+"オーバーフローする、 同じポインタに二度 free する、などがこれにあたる。"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:259
+msgid ""
+"Recent versions of Linux libc (later than 5.4.23) and glibc (2.x) include a "
+"B<malloc>() implementation which is tunable via environment variables. For "
+"details, see B<mallopt>(3)."
+msgstr ""
+"Linux libc の新しいバージョン (5.4.23 より後) と glibc (2.x) には、\n"
+"環境変数で動作を調整できる B<malloc>() 実装が含まれている。\n"
+"詳細は B<mallopt>(3) を参照のこと。"
+
+#. type: Plain text
+#: build/C/man3/malloc.3:283
+msgid ""
+"B<brk>(2), B<mmap>(2), B<alloca>(3), B<malloc_get_state>(3), B<malloc_info>"
+"(3), B<malloc_trim>(3), B<malloc_usable_size>(3), B<mallopt>(3), B<mcheck>"
+"(3), B<mtrace>(3), B<posix_memalign>(3)"
+msgstr ""
+"B<brk>(2), B<mmap>(2), B<alloca>(3), B<malloc_get_state>(3), B<malloc_info>"
+"(3), B<malloc_trim>(3), B<malloc_usable_size>(3), B<mallopt>(3), B<mcheck>"
+"(3), B<mtrace>(3), B<posix_memalign>(3)"
+
+#. type: TH
+#: build/C/man3/mblen.3:16
+#, no-wrap
+msgid "MBLEN"
+msgstr "MBLEN"
+
+#. type: Plain text
+#: build/C/man3/mblen.3:19
+msgid "mblen - determine number of bytes in next multibyte character"
+msgstr "mblen - 次のマルチバイト文字のバイト数を返す"
+
+#. type: Plain text
+#: build/C/man3/mblen.3:24
+#, no-wrap
+msgid "B<int mblen(const char *>I<s>B<, size_t >I<n>B<);>\n"
+msgstr "B<int mblen(const char *>I<s>B<, size_t >I<n>B<);>\n"
+
+#. type: Plain text
+#: build/C/man3/mblen.3:43
+msgid ""
+"If I<s> is not NULL, the B<mblen>() function inspects at most I<n> bytes of "
+"the multibyte string starting at I<s> and extracts the next complete "
+"multibyte character. It uses a static anonymous shift state known only to "
+"the B<mblen>() function. If the multibyte character is not the null wide "
+"character, it returns the number of bytes that were consumed from I<s>. If "
+"the multibyte character is the null wide character, it returns 0."
+msgstr ""
+"I<s> が NULL でなければ、 B<mblen>() 関数は I<s> から始まる最大 "
+"I<n> バイトのマルチバイト文字列を検査して、 次の完全なマルチバイト文字を取り"
+"出す。これには B<mblen>() 関数のみが使用する静的で名前のないシフト状態が使用"
+"される。 マルチバイト文字がナルワイド文字でなければ I<s> から消費される バイ"
+"ト数を返す。マルチバイト文字がナルワイド文字ならば 0 を返す。"
+
+#. type: Plain text
+#: build/C/man3/mblen.3:57
+msgid ""
+"If the I<n> bytes starting at I<s> do not contain a complete multibyte "
+"character, B<mblen>() returns -1. This can happen even if I<n> is greater "
+"than or equal to I<MB_CUR_MAX>, if the multibyte string contains redundant "
+"shift sequences."
+msgstr ""
+"I<s> から始まる I<n> バイトが完全なマルチバイト文字を含んで いなければ、 "
+"B<mblen>() は -1 を返す。マルチバイト文字列 に冗長なシフトシーケンスが含まれ"
+"ていると、 I<n> が I<MB_CUR_MAX> 以上の場合にも このようなことが起こりえる。"
+
+#. type: Plain text
+#: build/C/man3/mblen.3:64
+msgid ""
+"If the multibyte string starting at I<s> contains an invalid multibyte "
+"sequence before the next complete character, B<mblen>() also returns -1."
+msgstr ""
+"I<s> から始まるマルチバイト文字列が次の完全な文字の前に 不正なマルチバイト列"
+"を含んでいる場合にも、 B<mblen>() は -1 を返す。"
+
+#. The Dinkumware doc and the Single UNIX specification say this, but
+#. glibc doesn't implement this.
+#. type: Plain text
+#: build/C/man3/mblen.3:75
+msgid ""
+"If I<s> is NULL, the B<mblen>() function resets the shift state, known to "
+"only this function, to the initial state, and returns nonzero if the "
+"encoding has nontrivial shift state, or zero if the encoding is stateless."
+msgstr ""
+"I<s> が NULL ならば、 B<mblen>() 関数はこの関数のみが 使用するシフ"
+"ト状態を初期化状態に戻し、シフト状態を使用した文字符号の場合に はゼロ以外を、"
+"文字符号がシフト状態を持たない場合にはゼロを返す。"
+
+#. type: Plain text
+#: build/C/man3/mblen.3:87
+msgid ""
+"The B<mblen>() function returns the number of bytes parsed from the "
+"multibyte sequence starting at I<s>, if a non-null wide character was "
+"recognized. It returns 0, if a null wide character was recognized. It "
+"returns -1, if an invalid multibyte sequence was encountered or if it "
+"couldn't parse a complete multibyte character."
+msgstr ""
+"B<mblen>() 関数は I<s> から始まるマルチバイト列を検査して ナルワイド文字以外"
+"を確認した場合にはそのバイト数を返す。 ナルワイド文字を確認した場合にはゼロを"
+"返す。不正なマルチバイト列に 遭遇した場合や完全なマルチバイト文字を解析できな"
+"かった場合には -1 を返す。"
+
+#. type: Plain text
+#: build/C/man3/mblen.3:92
+msgid "The B<mblen>() function is not thread-safe."
+msgstr "B<mblen>() 関数はスレッドセーフではない。"
+
+#. type: Plain text
+#: build/C/man3/mblen.3:94 build/C/man3/mbstowcs.3:97
+#: build/C/man3/mbtowc.3:116 build/C/man3/wcstombs.3:91
+#: build/C/man3/wctomb.3:91
+msgid "C99."
+msgstr "C99."
+
+#. type: Plain text
+#: build/C/man3/mblen.3:101
+msgid ""
+"The behavior of B<mblen>() depends on the B<LC_CTYPE> category of the "
+"current locale."
+msgstr ""
+"B<mblen>() の動作は現在のロケールの B<LC_CTYPE> カテゴリに依存している。"
+
+#. type: Plain text
+#: build/C/man3/mblen.3:106
+msgid ""
+"The function B<mbrlen>(3) provides a better interface to the same "
+"functionality."
+msgstr "B<mbrlen>(3) 関数は同じ機能のより良いインタフェースを提供する。"
+
+#. type: Plain text
+#: build/C/man3/mblen.3:108
+msgid "B<mbrlen>(3)"
+msgstr "B<mbrlen>(3)"
+
+#. type: TH
+#: build/C/man3/mbstowcs.3:18
+#, no-wrap
+msgid "MBSTOWCS"
+msgstr "MBSTOWCS"
+
+#. type: TH
+#: build/C/man3/mbstowcs.3:18 build/C/man3/mbtowc.3:16
+#: build/C/man3/strtol.3:31 build/C/man3/strtoul.3:33
+#: build/C/man3/wcstombs.3:16 build/C/man3/wctomb.3:16
+#, no-wrap
+msgid "2014-03-18"
+msgstr "2014-03-18"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:21
+msgid "mbstowcs - convert a multibyte string to a wide-character string"
+msgstr "mbstowcs - マルチバイト文字列をワイド文字列に変換する"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:26
+#, no-wrap
+msgid "B<size_t mbstowcs(wchar_t *>I<dest>B<, const char *>I<src>B<, size_t >I<n>B<);>\n"
+msgstr "B<size_t mbstowcs(wchar_t *>I<dest>B<, const char *>I<src>B<, size_t >I<n>B<);>\n"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:45
+msgid ""
+"If I<dest> is not NULL, the B<mbstowcs>() function converts the multibyte "
+"string I<src> to a wide-character string starting at I<dest>. At most I<n> "
+"wide characters are written to I<dest>. The conversion starts in the "
+"initial state. The conversion can stop for three reasons:"
+msgstr ""
+"I<dest> が NULL でなければ B<mbstowcs>() 関数は マルチバイト文字"
+"列 I<*src> を I<dest> から始まるワイド文字列に 変換する。I<dest> には最大で "
+"I<n> 文字のワイド文字が 書き込まれる。変換は初期状態で開始され、 以下の三つの"
+"いずれかの条件で停止する:"
+
+#. type: IP
+#: build/C/man3/mbstowcs.3:45
+#, no-wrap
+msgid "1."
+msgstr "1."
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:50
+msgid ""
+"An invalid multibyte sequence has been encountered. In this case I<"
+"(size_t)\\ -1> is returned."
+msgstr "不正なマルチバイト列に遭遇した。この場合には I<(size_t)\\ -1> を返す。"
+
+#. type: IP
+#: build/C/man3/mbstowcs.3:50
+#, no-wrap
+msgid "2."
+msgstr "2."
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:59
+msgid ""
+"I<n> non-L\\(aq\\e0\\(aq wide characters have been stored at I<dest>. In "
+"this case the number of wide characters written to I<dest> is returned, but "
+"the shift state at this point is lost."
+msgstr ""
+"I<n> 文字の L\\(aq\\e0\\(aq 以外のワイド文字を I<dest> に格納した場合。 この"
+"場合は I<*src> が次に変換されるマルチバイト列を指すようにして、 I<dest> に書"
+"き込まれたワイド文字の数を返す。しかしこの指している 場所のシフト状態は失われ"
+"る。"
+
+#. type: IP
+#: build/C/man3/mbstowcs.3:59
+#, no-wrap
+msgid "3."
+msgstr "3."
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:65
+msgid ""
+"The multibyte string has been completely converted, including the "
+"terminating null wide character (\\(aq\\e0\\(aq). In this case the number "
+"of wide characters written to I<dest>, excluding the terminating null wide "
+"character, is returned."
+msgstr ""
+"マルチバイト文字列が終端の NULL ワイド文字 (\\(aq\\e0\\(aq) まで含めて完全に "
+"変換された場合。この場合は終端の NULL ワイド文字を除いて I<dest> に書き込まれ"
+"た文字数を返す。"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:71
+msgid ""
+"The programmer must ensure that there is room for at least I<n> wide "
+"characters at I<dest>."
+msgstr ""
+"プログラマーは I<dest> に最低でも I<n> ワイド文字を書き込むこ とができる空間"
+"があることを保証しなければならない。"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:79
+msgid ""
+"If I<dest> is NULL, I<n> is ignored, and the conversion proceeds as above, "
+"except that the converted wide characters are not written out to memory, and "
+"that no length limit exists."
+msgstr ""
+"I<dest> が NULL の場合、I<n> は無視され、上記と同様の変換が 行われるが、変換"
+"されたワイド文字はメモリに書き込まれず、変換先の上限 が存在しない。"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:85
+msgid ""
+"In order to avoid the case 2 above, the programmer should make sure I<n> is "
+"greater than or equal to I<mbstowcs(NULL,src,0)+1>."
+msgstr ""
+"上記の 2. の場合を避けるためにプログラマーは I<n> が I<mbstowcs(NULL,"
+"src,0)+1> 以上であることを保証すべきである。"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:95
+msgid ""
+"The B<mbstowcs>() function returns the number of wide characters that make "
+"up the converted part of the wide-character string, not including the "
+"terminating null wide character. If an invalid multibyte sequence was "
+"encountered, I<(size_t)\\ -1> is returned."
+msgstr ""
+"B<mbstowcs>() 関数はワイド文字列に変換完了したワイド文字の数を返す。 終端の"
+"ナルワイド文字は含まない。不正なマルチバイト列に遭遇した場合には I<"
+"(size_t)\\ -1> を返す。"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:104
+msgid ""
+"The behavior of B<mbstowcs>() depends on the B<LC_CTYPE> category of the "
+"current locale."
+msgstr ""
+"B<mbstowcs>() の動作は現在のロケールの B<LC_CTYPE> カテゴリに依存している。"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:109
+msgid ""
+"The function B<mbsrtowcs>(3) provides a better interface to the same "
+"functionality."
+msgstr "B<mbsrtowcs>(3) 関数は同じ機能のより良いインターフェースを提供する。"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:114
+msgid ""
+"The program below illustrates the use of B<mbstowcs>(), as well as some of "
+"the wider character classification functions. An example run is the "
+"following:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:121
+#, no-wrap
+msgid ""
+"$ ./t_mbstowcs de_DE.UTF-8 Grüße!\n"
+"Length of source string (excluding terminator):\n"
+" 8 bytes\n"
+" 6 multibyte characters\n"
+msgstr ""
+"$ ./t_mbstowcs de_DE.UTF-8 Grüße!\n"
+"Length of source string (excluding terminator):\n"
+" 8 bytes\n"
+" 6 multibyte characters\n"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:129
+#, no-wrap
+msgid ""
+"Wide character string is: Grüße! (6 characters)\n"
+" G alpha upper\n"
+" r alpha lower\n"
+" ü alpha lower\n"
+" ß alpha lower\n"
+" e alpha lower\n"
+" ! !alpha\n"
+msgstr ""
+
+#. type: SS
+#: build/C/man3/mbstowcs.3:131 build/C/man3/strtol.3:248
+#, no-wrap
+msgid "Program source"
+msgstr "プログラムのソース"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:138
+#, no-wrap
+msgid ""
+"#include E<lt>locale.hE<gt>\n"
+"#include E<lt>wchar.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+msgstr ""
+"#include E<lt>locale.hE<gt>\n"
+"#include E<lt>wchar.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:145
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" size_t mbslen; /* Number of multibyte characters in source */\n"
+" wchar_t *wcs; /* Pointer to converted wide character string */\n"
+" wchar_t *wp;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:150
+#, no-wrap
+msgid ""
+" if (argc E<lt> 3) {\n"
+" fprintf(stderr, \"Usage: %s E<lt>localeE<gt> E<lt>stringE<gt>\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if (argc E<lt> 3) {\n"
+" fprintf(stderr, \"Usage: %s E<lt>localeE<gt> E<lt>stringE<gt>\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:152
+#, no-wrap
+msgid " /* Apply the specified locale */\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:157
+#, no-wrap
+msgid ""
+" if (setlocale(LC_ALL, argv[1]) == NULL) {\n"
+" perror(\"setlocale\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if (setlocale(LC_ALL, argv[1]) == NULL) {\n"
+" perror(\"setlocale\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:160
+#, no-wrap
+msgid ""
+" /* Calculate the length required to hold argv[2] converted to\n"
+" a wide character string */\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:166
+#, no-wrap
+msgid ""
+" mbslen = mbstowcs(NULL, argv[2], 0);\n"
+" if (mbslen == (size_t) -1) {\n"
+" perror(\"mbstowcs\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" mbslen = mbstowcs(NULL, argv[2], 0);\n"
+" if (mbslen == (size_t) -1) {\n"
+" perror(\"mbstowcs\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:168
+#, no-wrap
+msgid " /* Describe the source string to the user */\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:172
+#, no-wrap
+msgid ""
+" printf(\"Length of source string (excluding terminator):\\en\");\n"
+" printf(\" %zu bytes\\en\", strlen(argv[2]));\n"
+" printf(\" %zu multibyte characters\\en\\en\", mbslen);\n"
+msgstr ""
+" printf(\"Length of source string (excluding terminator):\\en\");\n"
+" printf(\" %zu bytes\\en\", strlen(argv[2]));\n"
+" printf(\" %zu multibyte characters\\en\\en\", mbslen);\n"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:175
+#, no-wrap
+msgid ""
+" /* Allocate wide character string of the desired size. Add 1\n"
+" to allow for terminating null wide character (L\\(aq\\e0\\(aq). */\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:181
+#, no-wrap
+msgid ""
+" wcs = calloc(mbslen + 1, sizeof(wchar_t));\n"
+" if (wcs == NULL) {\n"
+" perror(\"calloc\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" wcs = calloc(mbslen + 1, sizeof(wchar_t));\n"
+" if (wcs == NULL) {\n"
+" perror(\"calloc\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:184
+#, no-wrap
+msgid ""
+" /* Convert the multibyte character string in argv[2] to a\n"
+" wide character string */\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:189
+#, no-wrap
+msgid ""
+" if (mbstowcs(wcs, argv[2], mbslen + 1) == (size_t) -1) {\n"
+" perror(\"mbstowcs\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if (mbstowcs(wcs, argv[2], mbslen + 1) == (size_t) -1) {\n"
+" perror(\"mbstowcs\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:192
+#, no-wrap
+msgid ""
+" printf(\"Wide character string is: %ls (%zu characters)\\en\",\n"
+" wcs, mbslen);\n"
+msgstr ""
+" printf(\"Wide character string is: %ls (%zu characters)\\en\",\n"
+" wcs, mbslen);\n"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:195
+#, no-wrap
+msgid ""
+" /* Now do some inspection of the classes of the characters in\n"
+" the wide character string */\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:198
+#, no-wrap
+msgid ""
+" for (wp = wcs; *wp != 0; wp++) {\n"
+" printf(\" %lc \", (wint_t) *wp);\n"
+msgstr ""
+" for (wp = wcs; *wp != 0; wp++) {\n"
+" printf(\" %lc \", (wint_t) *wp);\n"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:202
+#, no-wrap
+msgid ""
+" if (!iswalpha(*wp))\n"
+" printf(\"!\");\n"
+" printf(\"alpha \");\n"
+msgstr ""
+" if (!iswalpha(*wp))\n"
+" printf(\"!\");\n"
+" printf(\"alpha \");\n"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:206
+#, no-wrap
+msgid ""
+" if (iswalpha(*wp)) {\n"
+" if (iswupper(*wp))\n"
+" printf(\"upper \");\n"
+msgstr ""
+" if (iswalpha(*wp)) {\n"
+" if (iswupper(*wp))\n"
+" printf(\"upper \");\n"
+
+#. type: Plain text
+#: build/C/man3/mbstowcs.3:210
+#, no-wrap
+msgid ""
+" if (iswlower(*wp))\n"
+" printf(\"lower \");\n"
+" }\n"
+msgstr ""
+" if (iswlower(*wp))\n"
+" printf(\"lower \");\n"