OSDN Git Service

(split) LDP: Update the version to 3.53 in PO files
[linuxjm/LDP_man-pages.git] / draft / man3 / strtok.3
index 891ce53..a4589ab 100644 (file)
@@ -1,6 +1,8 @@
-.\" Copyright (C) 1996 Andries Brouwer (aeb@cwi.nl)
-.\" and Copyright (C) 2005 Michael Kerrisk (mtk.manpages@gmail.com)
+.\" Copyright (C) 2005, 2013 Michael Kerrisk (mtk.manpages@gmail.com)
+.\" a few fragments from an earlier (1996) version by
+.\" Andries Brouwer (aeb@cwi.nl) remain.
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" Rewritten old page, 960210, aeb@cwi.nl
-.\" Updated, added strtok_r. 2000-02-13 Nicolas Lichtmaier <nick@debian.org>
+.\" Updated, added strtok_r. 2000-02-13 Nicolás Lichtmaier <nick@debian.org>
 .\" 2005-11-17, mtk: Substantial parts rewritten
+.\" 2013-05-19, mtk: added much further detail on the operation of strtok()
 .\"
-.\" Japanese Version Copyright (c) 1998 Ishii Tatsuo all rights reserved.
-.\" Translated 1998-03-27, Ishii Tatsuo <rfun@azusa.shinshu-u.ac.jp>
-.\" Updated 2000-04-05, Kentaro Shirakata <argrath@ub32.org>
-.\" Updated 2000-09-21, Kentaro Shirakata
-.\" Updated 2002-03-28, Kentaro Shirakata
-.\" Updated 2005-11-19, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\"*******************************************************************
 .\"
-.TH STRTOK 3  2008-10-29 "GNU" "Linux Programmer's Manual"
-.\"O .SH NAME
-.\"O strtok, strtok_r \- extract tokens from strings
-.SH Ì¾Á°
-strtok, strtok_r \- Ê¸»úÎ󤫤é¥È¡¼¥¯¥ó¤ò¼è¤ê½Ð¤¹
-.\"O .SH SYNOPSIS
-.SH ½ñ¼°
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH STRTOK 3 2013\-05\-19 GNU "Linux Programmer's Manual"
+.SH 名前
+strtok, strtok_r \- 文字列からトークンを取り出す
+.SH 書式
 .nf
-.B #include <string.h>
+\fB#include <string.h>\fP
 .sp
-.BI "char *strtok(char *" str ", const char *" delim );
+\fBchar *strtok(char *\fP\fIstr\fP\fB, const char *\fP\fIdelim\fP\fB);\fP
 .sp
-.BI "char *strtok_r(char *" str ", const char *" delim ", char **" saveptr );
+\fBchar *strtok_r(char *\fP\fIstr\fP\fB, const char *\fP\fIdelim\fP\fB, char **\fP\fIsaveptr\fP\fB);\fP
 .fi
 .sp
 .in -4n
-.\"O Feature Test Macro Requirements for glibc (see
-.\"O .BR feature_test_macros (7)):
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
-.RB ( feature_test_macros (7)
-»²¾È):
+glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
 .in
 .sp
 .ad l
-.BR strtok_r ():
-_SVID_SOURCE || _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 1 ||
+\fBstrtok_r\fP(): _SVID_SOURCE || _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 1 ||
 _XOPEN_SOURCE || _POSIX_SOURCE
 .ad b
-.\"O .SH DESCRIPTION
-.SH ÀâÌÀ
-.\"O The
-.\"O .BR strtok ()
-.\"O function parses a string into a sequence of tokens.
-.\"O On the first call to
-.\"O .BR strtok ()
-.\"O the string to be parsed should be
-.\"O specified in \fIstr\fP.
-.\"O In each subsequent call that should parse the same string,
-.\"O \fIstr\fP should be NULL.
-.BR strtok ()
-´Ø¿ô¤Ïʸ»úÎó¤ò²òÀϤ·¤Æ¥È¡¼¥¯¥ó¤Ëʬ³ä¤¹¤ë¡£
-.BR strtok ()
-¤òºÇ½é¤Ë¸Æ¤Ó½Ð¤¹ºÝ¤Ë¤Ï¡¢²òÀÏÂоݤÎʸ»úÎó¤ò \fIstr\fP ¤Ë
-»ØÄꤹ¤ë¡£Æ±¤¸Ê¸»úÎó¤Î²òÀϤò¹Ô¤¦¤½¤Î¸å¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢
-\fIstr\fP ¤Ë¤Ï NULL ¤ò»ØÄꤹ¤ë¡£
+.SH 説明
+\fBstrtok\fP()  関数は文字列を 0 個以上の空でないトークンの列に分割する。 \fBstrtok\fP()
+を最初に呼び出す際には、解析対象の文字列を \fIstr\fP に 指定する。同じ文字列の解析を行うその後の呼び出しでは、 \fIstr\fP は NULL
+にしなければならない。
+
+\fIdelim\fP 引き数には、解析対象の文字列をトークンに区切るのに使用する
+バイト集合を指定する。同じ文字列を解析する一連の呼び出しにおいて、
+\fIdelim\fP に違う文字列を指定してもよい。
+
+\fBstrtok\fP() のそれぞれの呼び出しでは、次のトークンを格納した NULL 終端
+された文字列へのポインタが返される。この文字列には区切りバイトは含まれ
+ない。これ以上トークンが見つからなかった場合には、NULL が返される。
 
-.\"O The \fIdelim\fP argument specifies a set of characters that
-.\"O delimit the tokens in the parsed string.
-.\"O The caller may specify different strings in \fIdelim\fP in successive
-.\"O calls that parse the same string.
-\fIdelim\fP °ú¤­¿ô¤Ë¤Ï¡¢²òÀϤ¹¤ëʸ»úÎó¤ò¥È¡¼¥¯¥ó¤Ë¶èÀÚ¤ëʸ»ú½¸¹ç¤ò
-»ØÄꤹ¤ë¡£Æ±¤¸Ê¸»úÎó¤ò²òÀϤ¹¤ë°ìÏ¢¤Î¸Æ¤Ó½Ð¤·¤Ë¤ª¤¤¤Æ¡¢
-\fIdelim\fP ¤Ë°ã¤¦Ê¸»úÎó¤ò»ØÄꤷ¤Æ¤â¤è¤¤¡£
+同じ文字列に対して操作を行う \fBstrtok\fP() を連続して呼び出す場合、 次のトークンを探し始める位置を決めるためのポインタが保持される。 最初の
+\fBstrtok\fP の呼び出しでは、 このポインタは対象の文字列の最初のバイトにセットされる。 次のトークンの先頭は、 \fIstr\fP
+内で次の区切りバイト以外のバイトを前方に検索して決定される。 区切りバイト以外のバイトが見つからなかった場合は、 トークンはこれ以上なく、
+\fBstrtok\fP() は NULL を返す (したがって、 空の文字列や区切りバイトだけを含む文字列の場合には、 最初の \fBstrtok\fP()
+の呼び出しで NULL が返ることになる)。
 
-.\"O Each call to
-.\"O .BR strtok ()
-.\"O returns a pointer to a
-.\"O null-terminated string containing the next token.
-.\"O This string does not include the delimiting character.
-.\"O If no more tokens are found,
-.\"O .BR strtok ()
-.\"O returns NULL.
-.BR strtok ()
-¤Î¤½¤ì¤¾¤ì¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢¼¡¤Î¥È¡¼¥¯¥ó¤ò
-³ÊǼ¤·¤¿ NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£
-¤³¤Îʸ»úÎó¤Ë¤Ï¶èÀÚ¤êʸ»ú¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£
-¤³¤ì°Ê¾å¥È¡¼¥¯¥ó¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢NULL ¤¬ÊÖ¤µ¤ì¤ë¡£
+各トークンの末尾は、次の区切りバイトが見つかるか、終端の NULL バイト (\(aq\e0\(aq)
+に達するまで文字列を前方に検索することで見つかる。 区切りバイトが見つかった場合には、 現在のトークンの終わりを示すために、 見つかった区切りバイトが
+NULL バイトで上書きされ、 \fBstrtok\fP() はポインタを次のバイトに設定する。
+このポインタは、次のトークンを検索する際の開始点として使用される。 この場合、 \fBstrtok\fP() は見つかったトークンの先頭へのポインタを返す。
 
-.\"O A sequence of two or more contiguous delimiter characters in
-.\"O the parsed string is considered to be a single delimiter.
-.\"O Delimiter characters at the start or end of the string are ignored.
-.\"O Put another way: the tokens returned by
-.\"O .BR strtok ()
-.\"O are always nonempty strings.
-²òÀÏÂоݤÎʸ»úÎó¤Ë2¤Ä°Ê¾å¤Î¶èÀÚ¤êʸ»ú¤¬Ï¢Â³¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢
-°ì¤Ä¤Î¶èÀÚ¤êʸ»ú¤È¤ß¤Ê¤µ¤ì¤ë¡£
-ʸ»úÎó¤ÎÀèƬ¤äËöÈø¤Ë¤¢¤ë¶èÀÚ¤êʸ»ú¤Ï̵»ë¤µ¤ì¤ë¡£¸À¤¤´¹¤¨¤ë¤È¡¢
-.BR strtok ()
-¤¬ÊÖ¤¹¥È¡¼¥¯¥ó¤Ï¾ï¤Ë¶õ¤Ç¤Ê¤¤Ê¸»úÎó¤È¤Ê¤ë¡£
+上記の説明の通り、 解析対象の文字列に 2 つ以上の区切りバイトが連続している場合には、 一つの区切りバイトとみなされ、
+文字列の先頭や末尾にある区切りバイトは無視される。 言い換えると、 \fBstrtok\fP() が返すトークンは必ず空でない文字列となる。
+したがって、例えば "\fIaaa;;bbb,\fP" という文字列が与えられたとすると、 区切り文字列 "\fI;,\fP" を指定した一連の
+\fBstrtok\fP() の呼び出しでは、 "\fIaaa\fP" と \fIbbb\fP" が返り、その次に NULL ポインタが返る。
 
-.\"O The
-.\"O .BR strtok_r ()
-.\"O function is a reentrant version
-.\"O .BR strtok ().
-.\"O The \fIsaveptr\fP argument is a pointer to a
-.\"O \fIchar *\fP variable that is used internally by
-.\"O .BR strtok_r ()
-.\"O in order to maintain context between successive calls that parse the
-.\"O same string.
-.BR strtok_r ()
-´Ø¿ô¤Ï
-.BR strtok ()
-¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë¡£
-\fIsaveptr\fP °ú¤­¿ô¤Ï \fIchar *\fP ÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ê¡¢
-Ʊ¤¸Ê¸»úÎó¤Î²òÀϤò¹Ô¤¦
-.BR strtok_r ()
-¤Î¸Æ¤Ó½Ð¤·´Ö¤Ç½èÍý¾õ¶·¤òÊݸ¤¹¤ë¤¿¤á¤Ë
-.BR strtok_r ()
-ÆâÉô¤Ç»ÈÍѤµ¤ì¤ë¡£
+\fBstrtok_r\fP()  関数は \fBstrtok\fP()  のリエントラント版である。 \fIsaveptr\fP 引き数は \fIchar\ *\fP
+変数へのポインタであり、 同じ文字列の解析を行う \fBstrtok_r\fP()  の呼び出し間で処理状況を保存するために \fBstrtok_r\fP()
+内部で使用される。
 
-.\"O On the first call to
-.\"O .BR strtok_r (),
-.\"O .I str
-.\"O should point to the string to be parsed, and the value of
-.\"O .I saveptr
-.\"O is ignored.
-.\"O In subsequent calls, \fIstr\fP should be NULL, and
-.\"O \fIsaveptr\fP should be unchanged since the previous call.
-.BR strtok_r ()
-¤òºÇ½é¤Ë¸Æ¤Ó½Ð¤¹ºÝ¤Ë¤Ï¡¢
-.I str
-¤Ï²òÀÏÂоݤÎʸ»úÎó¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢
-.I saveptr
-¤ÎÃͤÏ̵»ë¤µ¤ì¤ë¡£¤½¤ì°Ê¹ß¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢
-.I str
-¤Ï NULL ¤È¤·¡¢
-.I saveptr
-¤ÏÁ°²ó¤Î¸Æ¤Ó½Ð¤·°Ê¹ßÊѹ¹¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+\fBstrtok_r\fP()  を最初に呼び出す際には、 \fIstr\fP は解析対象の文字列を指していなければならず、 \fIsaveptr\fP
+の値は無視される。それ以降の呼び出しでは、 \fIstr\fP は NULL とし、 \fIsaveptr\fP
+は前回の呼び出し以降変更しないようにしなければならない。
 
-.\"O Different strings may be parsed concurrently using sequences of calls to
-.\"O .BR strtok_r ()
-.\"O that specify different \fIsaveptr\fP arguments.
-.BR strtok_r ()
-¤Î¸Æ¤Ó½Ð¤·»þ¤Ë°Û¤Ê¤ë \fIsaveptr\fP °ú¤­¿ô¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢
-°Û¤Ê¤ëʸ»úÎó¤Î²òÀϤòƱ»þ¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£
-.\"O .SH "RETURN VALUE"
-.SH ÊÖ¤êÃÍ
-.\"O The
-.\"O .BR strtok ()
-.\"O and
-.\"O .BR strtok_r ()
-.\"O functions return a pointer to
-.\"O the next token, or NULL if there are no more tokens.
-.BR strtok ()
-¤È
-.BR strtok_r ()
-¤Ï¼¡¤Î¥È¡¼¥¯¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¡¢
-¥È¡¼¥¯¥ó¤¬¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£
-.\"O .SH "CONFORMING TO"
-.SH ½àµò
-.TP
-.BR strtok ()
-SVr4, POSIX.1-2001, 4.3BSD, C89, C99.
-.TP
-.BR strtok_r ()
-POSIX.1-2001.
-.\"O .SH "BUGS"
-.SH ¥Ð¥°
-.\"O Be cautious when using these functions.
-.\"O If you do use them, note that:
-¤³¤ì¤é¤Î´Ø¿ô¤ò»È¤¦¤Î¤Ï¿µ½Å¤Ë¶ãÌ£¤¹¤ë¤³¤È¡£
-»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¢°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£
+\fBstrtok_r\fP()  の呼び出し時に異なる \fIsaveptr\fP 引き数を指定することで、 異なる文字列の解析を同時に行うことができる。
+.SH 返り値
+\fBstrtok\fP()  と \fBstrtok_r\fP()  は次のトークンへのポインタか、 トークンがなければ NULL を返す。
+.SH 属性
+.SS "マルチスレッディング (pthreads(7) 参照)"
+The \fBstrtok\fP() 関数はスレッドセーフではない。
+.LP
+\fBstrtok_r\fP() 関数はスレッドセーフである。
+.SH 準拠
+.TP 
+\fBstrtok\fP()
+SVr4, POSIX.1\-2001, 4.3BSD, C89, C99.
+.TP 
+\fBstrtok_r\fP()
+POSIX.1\-2001.
+.SH バグ
+これらの関数を使うのは慎重に吟味すること。 使用する場合は、以下の点に注意が必要である。
 .IP * 2
-.\"O These functions modify their first argument.
-¤³¤ì¤é¤Î´Ø¿ô¤Ï¤½¤ÎºÇ½é¤Î°ú¿ô¤òÊѹ¹¤¹¤ë¡£
+これらの関数はその最初の引数を変更する。
 .IP *
-.\"O These functions cannot be used on constant strings.
-¤³¤ì¤é¤Î´Ø¿ô¤Ï const ¤Êʸ»úÎó¤Ç¤Ï»È¤¨¤Ê¤¤¡£
+これらの関数は const な文字列では使えない。
 .IP *
-.\"O The identity of the delimiting character is lost.
-¶èÀÚ¤êʸ»ú¼«ÂΤϼº¤ï¤ì¤Æ¤·¤Þ¤¦¡£
+区切りバイト自体は失われてしまう。
 .IP *
-.\"O The
-.\"O .BR strtok ()
-.\"O function uses a static buffer while parsing, so it's not thread safe.
-.\"O Use
-.\"O .BR strtok_r ()
-.\"O if this matters to you.
-.BR strtok ()
-´Ø¿ô¤Ïʸ»úÎó¤Î²òÀϤËÀÅŪ¥Ð¥Ã¥Õ¥¡¤òÍѤ¤¤ë¤Î¤Ç¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ê¤¤¡£
-¤³¤ì¤¬ÌäÂê¤Ë¤Ê¤ë¾ì¹ç¤Ï
-.BR strtok_r ()
-¤òÍѤ¤¤ë¤³¤È¡£
-.\"O .SH EXAMPLE
-.SH Îã
-.\"O The program below uses nested loops that employ
-.\"O .BR strtok_r ()
-.\"O to break a string into a two-level hierarchy of tokens.
-.\"O The first command-line argument specifies the string to be parsed.
-.\"O The second argument specifies the delimiter character(s)
-.\"O to be used to separate that string into "major" tokens.
-.\"O The third argument specifies the delimiter character(s)
-.\"O to be used to separate the "major" tokens into subtokens.
-°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢
-.BR strtok_r ()
-¤òÍøÍѤ¹¤ë¥ë¡¼¥×¤òÆþ¤ì»Ò¤Ë¤·¤Æ»ÈÍѤ·¡¢
-ʸ»úÎó¤ò2³¬ÁؤΥȡ¼¥¯¥ó¤Ëʬ³ä¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£
-1ÈÖÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ë¤Ï¡¢²òÀÏÂоݤÎʸ»úÎó¤ò»ØÄꤹ¤ë¡£
-2ÈÖÌܤΰú¤­¿ô¤Ë¤Ï¡¢Ê¸»úÎó¤ò¡ÖÂ礭¤Ê¡×¥È¡¼¥¯¥ó¤Ëʬ³ä¤¹¤ë¤¿¤á¤Ë
-»ÈÍѤ¹¤ë¶èÀÚ¤êʸ»ú¤ò»ØÄꤹ¤ë¡£
-3ÈÖÌܤΰú¤­¿ô¤Ë¤Ï¡¢¡ÖÂ礭¤Ê¡×¥È¡¼¥¯¥ó¤òºÙ¤«¤¯Ê¬³ä¤¹¤ë¤¿¤á¤Ë
-»ÈÍѤ¹¤ë¶èÀÚ¤êʸ»ú¤ò»ØÄꤹ¤ë¡£
+\fBstrtok\fP()  関数は文字列の解析に静的バッファを用いるので、スレッドセーフでない。 これが問題になる場合は \fBstrtok_r\fP()
+を用いること。
+.SH 例
+以下のプログラムは、 \fBstrtok_r\fP() を利用するループを入れ子にして使用し、
+文字列を 2 階層のトークンに分割するものである。 1番目のコマンドライン
+引き数には、解析対象の文字列を指定する。 2 番目の引き数には、文字列を
+「大きな」トークンに分割するために 使用する区切りバイトを指定する。
+3 番目の引き数には、「大きな」トークンを細かく分割するために使用する
+区切りバイトを指定する。
 .PP
-.PP
-.\"O An example of the output produced by this program is the following:
-¤³¤Î¥×¥í¥°¥é¥à¤Î½ÐÎÏÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£
+このプログラムの出力例を以下に示す。
 .PP
 .in +4n
 .nf
-.RB "$" " ./a.out \(aqa/bbb///cc;xxx:yyy:\(aq \(aq:;\(aq \(aq/\(aq"
+$\fB ./a.out \(aqa/bbb///cc;xxx:yyy:\(aq \(aq:;\(aq \(aq/\(aq\fP
 1: a/bbb///cc
          \-\-> a
          \-\-> bbb
@@ -242,8 +140,7 @@ POSIX.1-2001.
          \-\-> yyy
 .fi
 .in
-.\"O .SS Program source
-.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹
+.SS プログラムのソース
 \&
 .nf
 #include <stdio.h>
@@ -258,7 +155,7 @@ main(int argc, char *argv[])
     int j;
 
     if (argc != 4) {
-        fprintf(stderr, "Usage: %s string delim subdelim\\n",
+        fprintf(stderr, "Usage: %s string delim subdelim\en",
                 argv[0]);
         exit(EXIT_FAILURE);
     }
@@ -267,27 +164,25 @@ main(int argc, char *argv[])
         token = strtok_r(str1, argv[2], &saveptr1);
         if (token == NULL)
             break;
-        printf("%d: %s\\n", j, token);
+        printf("%d: %s\en", j, token);
 
         for (str2 = token; ; str2 = NULL) {
             subtoken = strtok_r(str2, argv[3], &saveptr2);
             if (subtoken == NULL)
                 break;
-            printf("\t \-\-> %s\\n", subtoken);
+            printf("\t \-\-> %s\en", subtoken);
         }
     }
 
     exit(EXIT_SUCCESS);
-} /* main */
+}
 .fi
-.\"O .SH "SEE ALSO"
-.SH ´ØÏ¢¹àÌÜ
-.BR index (3),
-.BR memchr (3),
-.BR rindex (3),
-.BR strchr (3),
-.BR strpbrk (3),
-.BR strsep (3),
-.BR strspn (3),
-.BR strstr (3),
-.BR wcstok (3)
+.PP
+\fBstrtok\fP()  を使った別のプログラム例が \fBgetaddrinfo_a\fP(3)  にある。
+.SH 関連項目
+\fBindex\fP(3), \fBmemchr\fP(3), \fBrindex\fP(3), \fBstrchr\fP(3), \fBstring\fP(3),
+\fBstrpbrk\fP(3), \fBstrsep\fP(3), \fBstrspn\fP(3), \fBstrstr\fP(3), \fBwcstok\fP(3)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.53 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。