basename

/で終わる接頭辞を除外した文字列を返します。

string basename(const char *str)

basename関数は、指定された文字列strのコピーから構成される文字列を生成しますが、ディレクトリ・パスなど/で終わる接頭辞は付きません。返される文字列には、スクラッチ・メモリーからメモリーが割り当てられます。そのためこれは節の処理中にのみ有効です。使用できるスクラッチ・メモリーが不足している場合、basenameは実行されず、エラーが生成されます。

例7-3 basenameを使用して文字列内のパスの最後の要素を返す方法

BEGIN
{
        printf("%s\n", basename("/foo/bar/baz"));
        printf("%s\n", basename("/foo/bar///baz/"));
        printf("%s\n", basename("/foo/bar/baz/"));
        printf("%s\n", basename("/foo/bar/baz//"));
}

これらの各文は、次の出力をレンダリングします: baz