.\" 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 2010-09-27 "GNU" "Linux Programmer's Manual"
+.\" 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
-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
.SH 説明
-.BR strtok ()
-関数は文字列を解析してトークンに分割する。
-.BR strtok ()
-を最初に呼び出す際には、解析対象の文字列を \fIstr\fP に
-指定する。同じ文字列の解析を行うその後の呼び出しでは、
-\fIstr\fP には NULL を指定する。
+\fBstrtok\fP() 関数は文字列を解析してトークンに分割する。 \fBstrtok\fP() を最初に呼び出す際には、解析対象の文字列を \fIstr\fP
+に 指定する。同じ文字列の解析を行うその後の呼び出しでは、 \fIstr\fP には NULL を指定する。
-\fIdelim\fP 引き数には、解析する文字列をトークンに区切る文字集合を
-指定する。同じ文字列を解析する一連の呼び出しにおいて、
-\fIdelim\fP に違う文字列を指定してもよい。
+\fIdelim\fP 引き数には、解析する文字列をトークンに区切る文字集合を 指定する。同じ文字列を解析する一連の呼び出しにおいて、 \fIdelim\fP
+に違う文字列を指定してもよい。
-.BR strtok ()
-のそれぞれの呼び出しでは、次のトークンを
-格納した NULL 終端された文字列へのポインタが返される。
-この文字列には区切り文字は含まれない。
-これ以上トークンが見つからなかった場合には、NULL が返される。
+\fBstrtok\fP() のそれぞれの呼び出しでは、次のトークンを 格納した NULL 終端された文字列へのポインタが返される。
+この文字列には区切り文字は含まれない。 これ以上トークンが見つからなかった場合には、NULL が返される。
-解析対象の文字列に2つ以上の区切り文字が連続している場合には、
-一つの区切り文字とみなされる。
-文字列の先頭や末尾にある区切り文字は無視される。言い換えると、
-.BR strtok ()
-が返すトークンは常に空でない文字列となる。
+解析対象の文字列に2つ以上の区切り文字が連続している場合には、 一つの区切り文字とみなされる。
+文字列の先頭や末尾にある区切り文字は無視される。言い換えると、 \fBstrtok\fP() が返すトークンは常に空でない文字列となる。
-.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()
内部で使用される。
-.BR strtok_r ()
-を最初に呼び出す際には、
-.I str
-は解析対象の文字列を指していなければならず、
-.I saveptr
-の値は無視される。それ以降の呼び出しでは、
-.I str
-は NULL とし、
-.I saveptr
+\fBstrtok_r\fP() を最初に呼び出す際には、 \fIstr\fP は解析対象の文字列を指していなければならず、 \fIsaveptr\fP
+の値は無視される。それ以降の呼び出しでは、 \fIstr\fP は NULL とし、 \fIsaveptr\fP
は前回の呼び出し以降変更しないようにしなければならない。
-.BR strtok_r ()
-の呼び出し時に異なる \fIsaveptr\fP 引き数を指定することで、
-異なる文字列の解析を同時に行うことができる。
+\fBstrtok_r\fP() の呼び出し時に異なる \fIsaveptr\fP 引き数を指定することで、 異なる文字列の解析を同時に行うことができる。
.SH 返り値
-.BR strtok ()
-と
-.BR strtok_r ()
-は次のトークンへのポインタか、
-トークンがなければ NULL を返す。
+\fBstrtok\fP() と \fBstrtok_r\fP() は次のトークンへのポインタか、 トークンがなければ NULL を返す。
.SH 準拠
-.TP
-.BR strtok ()
-SVr4, POSIX.1-2001, 4.3BSD, C89, C99.
-.TP
-.BR strtok_r ()
-POSIX.1-2001.
+.TP
+\fBstrtok\fP()
+SVr4, POSIX.1\-2001, 4.3BSD, C89, C99.
+.TP
+\fBstrtok_r\fP()
+POSIX.1\-2001.
.SH バグ
-これらの関数を使うのは慎重に吟味すること。
-使用する場合は、以下の点に注意が必要である。
+これらの関数を使うのは慎重に吟味すること。 使用する場合は、以下の点に注意が必要である。
.IP * 2
これらの関数はその最初の引数を変更する。
.IP *
.IP *
区切り文字自体は失われてしまう。
.IP *
-.BR strtok ()
-関数は文字列の解析に静的バッファを用いるので、スレッドセーフでない。
-これが問題になる場合は
-.BR strtok_r ()
+\fBstrtok\fP() 関数は文字列の解析に静的バッファを用いるので、スレッドセーフでない。 これが問題になる場合は \fBstrtok_r\fP()
を用いること。
.SH 例
-以下のプログラムは、
-.BR strtok_r ()
-を利用するループを入れ子にして使用し、
-文字列を2階層のトークンに分割するものである。
-1番目のコマンドライン引き数には、解析対象の文字列を指定する。
-2番目の引き数には、文字列を「大きな」トークンに分割するために
-使用する区切り文字を指定する。
-3番目の引き数には、「大きな」トークンを細かく分割するために
-使用する区切り文字を指定する。
-.PP
+以下のプログラムは、 \fBstrtok_r\fP() を利用するループを入れ子にして使用し、 文字列を2階層のトークンに分割するものである。
+1番目のコマンドライン引き数には、解析対象の文字列を指定する。 2番目の引き数には、文字列を「大きな」トークンに分割するために
+使用する区切り文字を指定する。 3番目の引き数には、「大きな」トークンを細かく分割するために 使用する区切り文字を指定する。
.PP
このプログラムの出力例を以下に示す。
.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
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);
}
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);
}
}
}
.fi
.PP
-.BR strtok ()
-を使った別のプログラム例が
-.BR getaddrinfo_a (3)
-にある。
+\fBstrtok\fP() を使った別のプログラム例が \fBgetaddrinfo_a\fP(3) にある。
.SH 関連項目
-.BR index (3),
-.BR memchr (3),
-.BR rindex (3),
-.BR strchr (3),
-.BR string (3),
-.BR strpbrk (3),
-.BR strsep (3),
-.BR strspn (3),
-.BR strstr (3),
-.BR wcstok (3)
+\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)