.TH STRTOK 3 2010-09-27 "GNU" "Linux Programmer's Manual"
.\"O .SH NAME
.\"O strtok, strtok_r \- extract tokens from strings
-.SH ̾Á°
-strtok, strtok_r \- ʸ»úÎ󤫤é¥È¡¼¥¯¥ó¤ò¼è¤ê½Ð¤¹
+.SH 名前
+strtok, strtok_r \- 文字列からトークンを取り出す
.\"O .SH SYNOPSIS
-.SH ½ñ¼°
+.SH 書式
.nf
.B #include <string.h>
.sp
.in -4n
.\"O Feature Test Macro Requirements for glibc (see
.\"O .BR feature_test_macros (7)):
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
+glibc 向けの機能検査マクロの要件
.RB ( feature_test_macros (7)
-»²¾È):
+参照):
.in
.sp
.ad l
_XOPEN_SOURCE || _POSIX_SOURCE
.ad b
.\"O .SH DESCRIPTION
-.SH ÀâÌÀ
+.SH 説明
.\"O The
.\"O .BR strtok ()
.\"O function parses a string into a sequence of tokens.
.\"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 ¤ò»ØÄꤹ¤ë¡£
+を最初に呼び出す際には、解析対象の文字列を \fIstr\fP に
+指定する。同じ文字列の解析を行うその後の呼び出しでは、
+\fIstr\fP には 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 ¤Ë°ã¤¦Ê¸»úÎó¤ò»ØÄꤷ¤Æ¤â¤è¤¤¡£
+\fIdelim\fP 引き数には、解析する文字列をトークンに区切る文字集合を
+指定する。同じ文字列を解析する一連の呼び出しにおいて、
+\fIdelim\fP に違う文字列を指定してもよい。
.\"O Each call to
.\"O .BR strtok ()
.\"O .BR strtok ()
.\"O returns NULL.
.BR strtok ()
-¤Î¤½¤ì¤¾¤ì¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢¼¡¤Î¥È¡¼¥¯¥ó¤ò
-³ÊǼ¤·¤¿ NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£
-¤³¤Îʸ»úÎó¤Ë¤Ï¶èÀÚ¤êʸ»ú¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£
-¤³¤ì°Ê¾å¥È¡¼¥¯¥ó¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢NULL ¤¬ÊÖ¤µ¤ì¤ë¡£
+のそれぞれの呼び出しでは、次のトークンを
+格納した NULL 終端された文字列へのポインタが返される。
+この文字列には区切り文字は含まれない。
+これ以上トークンが見つからなかった場合には、NULL が返される。
.\"O A sequence of two or more contiguous delimiter characters in
.\"O the parsed string is considered to be a single delimiter.
.\"O Put another way: the tokens returned by
.\"O .BR strtok ()
.\"O are always nonempty strings.
-²òÀÏÂоݤÎʸ»úÎó¤Ë2¤Ä°Ê¾å¤Î¶èÀÚ¤êʸ»ú¤¬Ï¢Â³¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢
-°ì¤Ä¤Î¶èÀÚ¤êʸ»ú¤È¤ß¤Ê¤µ¤ì¤ë¡£
-ʸ»úÎó¤ÎÀèƬ¤äËöÈø¤Ë¤¢¤ë¶èÀÚ¤êʸ»ú¤Ï̵»ë¤µ¤ì¤ë¡£¸À¤¤´¹¤¨¤ë¤È¡¢
+解析対象の文字列に2つ以上の区切り文字が連続している場合には、
+一つの区切り文字とみなされる。
+文字列の先頭や末尾にある区切り文字は無視される。言い換えると、
.BR strtok ()
-¤¬ÊÖ¤¹¥È¡¼¥¯¥ó¤Ï¾ï¤Ë¶õ¤Ç¤Ê¤¤Ê¸»úÎó¤È¤Ê¤ë¡£
+が返すトークンは常に空でない文字列となる。
.\"O The
.\"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 ÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ê¡¢
-Ʊ¤¸Ê¸»úÎó¤Î²òÀϤò¹Ô¤¦
+のリエントラント版である。
+\fIsaveptr\fP 引き数は \fIchar *\fP 変数へのポインタであり、
+同じ文字列の解析を行う
.BR strtok_r ()
-¤Î¸Æ¤Ó½Ð¤·´Ö¤Ç½èÍý¾õ¶·¤òÊݸ¤¹¤ë¤¿¤á¤Ë
+の呼び出し間で処理状況を保存するために
.BR strtok_r ()
-ÆâÉô¤Ç»ÈÍѤµ¤ì¤ë¡£
+内部で使用される。
.\"O On the first call to
.\"O .BR strtok_r (),
.\"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 ¤È¤·¡¢
+は NULL とし、
.I saveptr
-¤ÏÁ°²ó¤Î¸Æ¤Ó½Ð¤·°Ê¹ßÊѹ¹¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+は前回の呼び出し以降変更しないようにしなければならない。
.\"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 °ú¤¿ô¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢
-°Û¤Ê¤ëʸ»úÎó¤Î²òÀϤòƱ»þ¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤¤ë¡£
+の呼び出し時に異なる \fIsaveptr\fP 引き数を指定することで、
+異なる文字列の解析を同時に行うことができる。
.\"O .SH "RETURN VALUE"
-.SH ÊÖ¤êÃÍ
+.SH 返り値
.\"O The
.\"O .BR strtok ()
.\"O and
.\"O functions return a pointer to
.\"O the next token, or NULL if there are no more tokens.
.BR strtok ()
-¤È
+と
.BR strtok_r ()
-¤Ï¼¡¤Î¥È¡¼¥¯¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¡¢
-¥È¡¼¥¯¥ó¤¬¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£
+は次のトークンへのポインタか、
+トークンがなければ NULL を返す。
.\"O .SH "CONFORMING TO"
-.SH ½àµò
+.SH 準拠
.TP
.BR strtok ()
SVr4, POSIX.1-2001, 4.3BSD, C89, C99.
.BR strtok_r ()
POSIX.1-2001.
.\"O .SH "BUGS"
-.SH ¥Ð¥°
+.SH ã\83\90ã\82°
.\"O Be cautious when using these functions.
.\"O If you do use them, note that:
-¤³¤ì¤é¤Î´Ø¿ô¤ò»È¤¦¤Î¤Ï¿µ½Å¤Ë¶ãÌ£¤¹¤ë¤³¤È¡£
-»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¢°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£
+これらの関数を使うのは慎重に吟味すること。
+使用する場合は、以下の点に注意が必要である。
.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 .BR strtok_r ()
.\"O if this matters to you.
.BR strtok ()
-´Ø¿ô¤Ïʸ»úÎó¤Î²òÀϤËÀÅŪ¥Ð¥Ã¥Õ¥¡¤òÍѤ¤¤ë¤Î¤Ç¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ê¤¤¡£
-¤³¤ì¤¬ÌäÂê¤Ë¤Ê¤ë¾ì¹ç¤Ï
+関数は文字列の解析に静的バッファを用いるので、スレッドセーフでない。
+これが問題になる場合は
.BR strtok_r ()
-¤òÍѤ¤¤ë¤³¤È¡£
+を用いること。
.\"O .SH EXAMPLE
-.SH Îã
+.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 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ÈÖÌܤΰú¤¿ô¤Ë¤Ï¡¢¡ÖÂ礤ʡץȡ¼¥¯¥ó¤òºÙ¤«¤¯Ê¬³ä¤¹¤ë¤¿¤á¤Ë
-»ÈÍѤ¹¤ë¶èÀÚ¤êʸ»ú¤ò»ØÄꤹ¤ë¡£
+を利用するループを入れ子にして使用し、
+文字列を2階層のトークンに分割するものである。
+1番目のコマンドライン引き数には、解析対象の文字列を指定する。
+2番目の引き数には、文字列を「大きな」トークンに分割するために
+使用する区切り文字を指定する。
+3番目の引き数には、「大きな」トークンを細かく分割するために
+使用する区切り文字を指定する。
.PP
.PP
.\"O An example of the output produced by this program is the following:
-¤³¤Î¥×¥í¥°¥é¥à¤Î½ÐÎÏÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£
+このプログラムの出力例を以下に示す。
.PP
.in +4n
.nf
.fi
.in
.\"O .SS Program source
-.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹
+.SS ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ã\82½ã\83¼ã\82¹
\&
.nf
#include <stdio.h>
.\"O can be found in
.\"O .BR getaddrinfo_a (3).
.BR strtok ()
-¤ò»È¤Ã¤¿ÊÌ¤Î¥×¥í¥°¥é¥àÎ㤬
+を使った別のプログラム例が
.BR getaddrinfo_a (3)
-¤Ë¤¢¤ë¡£
+にある。
.\"O .SH "SEE ALSO"
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
.BR index (3),
.BR memchr (3),
.BR rindex (3),