diff options
Diffstat (limited to 'documentation/manual-pages/ja/man3/strtok.3')
-rw-r--r-- | documentation/manual-pages/ja/man3/strtok.3 | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/documentation/manual-pages/ja/man3/strtok.3 b/documentation/manual-pages/ja/man3/strtok.3 new file mode 100644 index 0000000000..853b57e46c --- /dev/null +++ b/documentation/manual-pages/ja/man3/strtok.3 @@ -0,0 +1,182 @@ +.\" Copyright (c) 1998 Softweyr LLC. All rights reserved. +.\" +.\" strtok_r, from Berkeley strtok +.\" Oct 13, 1998 by Wes Peters <wes@softweyr.com> +.\" +.\" Copyright (c) 1988, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" the American National Standards Committee X3, on Information +.\" Processing Systems. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" +.\" 1. Redistributions of source code must retain the above copyright +.\" notices, this list of conditions and the following disclaimer. +.\" +.\" 2. Redistributions in binary form must reproduce the above +.\" copyright notices, this list of conditions and the following +.\" disclaimer in the documentation and/or other materials provided +.\" with the distribution. +.\" +.\" 3. All advertising materials mentioning features or use of this +.\" software must display the following acknowledgement: +.\" +.\" This product includes software developed by Softweyr LLC, the +.\" University of California, Berkeley, and its contributors. +.\" +.\" 4. Neither the name of Softweyr LLC, the University nor the names +.\" of its contributors may be used to endorse or promote products +.\" derived from this software without specific prior written +.\" permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY SOFTWEYR LLC, THE REGENTS AND +.\" CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +.\" DISCLAIMED. IN NO EVENT SHALL SOFTWEYR LLC, THE REGENTS, OR +.\" CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +.\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +.\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)strtok.3 8.2 (Berkeley) 2/3/94 +.\" %FreeBSD: src/lib/libc/string/strtok.3,v 1.10.2.8 2001/12/14 18:33:59 ru Exp % +.\" +.\" $FreeBSD$ +.Dd November 27, 1998 +.Dt STRTOK 3 +.Os +.Sh 名称 +.Nm strtok , strtok_r +.Nd 文字列のトークン +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In string.h +.Ft char * +.Fn strtok "char *str" "const char *sep" +.Ft char * +.Fn strtok_r "char *str" "const char *sep" "char **last" +.Sh 解説 +.Bf -symbolic +このインタフェースは +.Xr strsep 3 +によって置き換えられました。 +.Ef +.Pp +.Fn strtok +関数は、ヌルで終端された文字列 +.Fa str +の中の連続するトークンを分割するために用いられます。 +これらのトークンは、その文字列内で +.Fa sep +の中の文字の少なくとも 1 つによって区分されています。 +最初に +.Fn strtok +を呼び出すときには、 +.Fa str +を指定する必要があります。 +同じ文字列からさらにトークンを取得するために +続いて呼び出すときには、 +代わりに空ポインタを渡す必要があります。 +セパレータ文字列 +.Fa sep +は毎回与えなければなりませんが、 +呼び出しのたびに変更しても構いません。 +.\".Pp +.\"The implementation will behave as if no library function calls +.\".Fn strtok . +.Pp +ライブラリは、実装上、他のライブラリ関数が +.Fn strtok +を呼び出したりしないかのように動作します。 +.Pp +.Fn strtok_r +関数は +.Fn strtok +の再入可能なバージョンです。 +コンテキストポインタ +.Fa last +は、呼び出し毎に与えなければなりません。 +.Fn strtok_r +は、別々のコンテキストポインタが使われている限りでは、 +お互いの内部で 2 つのパースループを入れ子にするためにも使えます。 +.Pp +.Fn strtok +および +.Fn strtok_r +関数は、そのトークン自体を +.Dv NUL +文字で置き換えた後、 +文字列の次のトークンの先頭へのポインタを返します。 +トークンがなくなると、NULL ポインタを返します。 +.Sh 例 +次の例では、別々のコンテキストを使って 2 つの文字列を +パースするために +.Fn strtok_r +を使っています: +.Bd -literal +char test[80], blah[80]; +char *sep = "\e\e/:;=-"; +char *word, *phrase, *brkt, *brkb; + +strcpy(test, "This;is.a:test:of=the/string\e\etokenizer-function."); + +for (word = strtok_r(test, sep, &brkt); + word; + word = strtok_r(NULL, sep, &brkt)) +{ + strcpy(blah, "blah:blat:blab:blag"); + + for (phrase = strtok_r(blah, sep, &brkb); + phrase; + phrase = strtok_r(NULL, sep, &brkb)) + { + printf("So far we're at %s:%s\en", word, phrase); + } +} +.Ed +.Sh 関連項目 +.Xr memchr 3 , +.Xr strchr 3 , +.Xr strcspn 3 , +.Xr strpbrk 3 , +.Xr strrchr 3 , +.Xr strsep 3 , +.Xr strspn 3 , +.Xr strstr 3 +.Sh 規格 +.Fn strtok +関数は、 +.St -isoC +に適合しています。 +.Sh バグ +System V の +.Fn strtok +は、区切り文字のみからなる文字列を渡された場合は、 +次の開始点を変更しません。 +異なる (または空の) 区切り文字列を使った +.Fn strtok +の呼び出しで、 +.Dv NULL +.\" .Pf non- Dv NULL (オリジナル記述) +以外の値を返せるようにするためです。 +この実装では常に次の開始点を変更するので、 +そのような呼び出しが続く時は常に +.Dv NULL +を返すことになります。 +.Sh 作者 +.An Wes Peters , +Softweyr LLC: +.Aq wes@softweyr.com +.Pp +.Fx 3.0 +での実装に基づきます。 |