strsep(3) 文字列からトークンを取り出す

書式

#include <string.h>


char *strsep(char **stringp, const char *delim);

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

strsep(): _BSD_SOURCE

説明

*stringp が NULL の場合、 strsep() 関数は何もせずに NULL を返す。 さもなければ、文字列 stringpdelim に含まれるいずれかのバイトで区切ったトークンのうち最初のものを返す。 トークンは、区切り文字をヌルバイト ('\0') で上書きすることで 終端される。 *stringp は切り出されたトークンの次の位置を示すように更新される。 区切り文字が見つからない場合、*stringp 文字列全体がトークンとして 扱われ、*stringp は NULL となる。

返り値

strsep() 関数は、トークンへのポインタを返す。 つまり、元の *stringp の値を返す。

属性

マルチスレッディング (pthreads(7) 参照)

strsep() 関数はスレッドセーフである。

準拠

4.4BSD.

注意

strsep() 関数は、 strtok(3) 関数が空のフィールドを 扱えないために、その代替品として導入された。 しかしながら、 strtok(3) 関数は C89/C99 に準拠しており、より移植性がある。

バグ

この関数を使う時は注意すること。 もし使うなら、以下のことに注意すること。
*
この関数は最初の引数を変更する。
*
この関数は定数文字列には使えない。
*
区切り文字自体は失われてしまう。

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。