OSDN Git Service

(split) LDP: draft snapshot generated from latest ja.po files.
[linuxjm/LDP_man-pages.git] / draft / man3 / strtok.3
index 891ce53..54545e4 100644 (file)
 .\" the source, must acknowledge the copyright and authors of this work.
 .\"
 .\" 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
 .\"
-.\" 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 2010\-09\-27 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()  関数は文字列を解析してトークンに分割する。 \fBstrtok\fP()  を最初に呼び出す際には、解析対象の文字列を \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 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 ¤¬ÊÖ¤µ¤ì¤ë¡£
+\fBstrtok\fP()  のそれぞれの呼び出しでは、次のトークンを 格納した 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 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()  が返すトークンは常に空でない文字列となる。
 
-.\"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 準拠
+.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ÈÖÌܤΰú¤­¿ô¤Ë¤Ï¡¢¡ÖÂ礭¤Ê¡×¥È¡¼¥¯¥ó¤òºÙ¤«¤¯Ê¬³ä¤¹¤ë¤¿¤á¤Ë
-»ÈÍѤ¹¤ë¶èÀÚ¤êʸ»ú¤ò»ØÄꤹ¤ë¡£
-.PP
+\fBstrtok\fP()  関数は文字列の解析に静的バッファを用いるので、スレッドセーフでない。 これが問題になる場合は \fBstrtok_r\fP()
+を用いること。
+.SH 例
+以下のプログラムは、 \fBstrtok_r\fP()  を利用するループを入れ子にして使用し、 文字列を2階層のトークンに分割するものである。
+1番目のコマンドライン引き数には、解析対象の文字列を指定する。 2番目の引き数には、文字列を「大きな」トークンに分割するために
+使用する区切り文字を指定する。 3番目の引き数には、「大きな」トークンを細かく分割するために 使用する区切り文字を指定する。
 .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 +112,7 @@ POSIX.1-2001.
          \-\-> yyy
 .fi
 .in
-.\"O .SS Program source
-.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹
+.SS プログラムのソース
 \&
 .nf
 #include <stdio.h>
@@ -258,7 +127,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 +136,21 @@ 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)