EN JA
DIRNAME(3)
DIRNAME(3) FreeBSD Library Functions Manual DIRNAME(3)

名称

dirnameパス名のディレクトリ部分を抽出する

書式

#include < libgen.h>

char *
dirname( const char *path);

解説

dirname() 関数は basename(3) と逆の関係です。それは path で示されるパス名の親ディレクトリへのポインタを返します。最後尾の‘/’文字はディレクトリ名の部分には含まれません。もし path がヌルポインタか空文字列か‘/’を含まないなら、 dirname() はカレントディレクトリを示す、文字列“.”のポインタを返します。

実装に関する注

dirname() 関数は、その後の呼び出しによって上書きされるかもしれない最初の呼び出しで割り付けられた内部記憶域空間へのポインタを返します。

dirname() の他のベンダの実装は、 dirname() に渡された文字列の内容を変更するかもしれません。移植性が望まれているなら、この関数を呼び出すコードを書くとき、これを考慮に入れるべきです。

戻り値

成功して完了したら、 dirname() は path の親ディレクトリのポインタを返します。

もし dirname() が失敗したなら、ヌルポインタが返され、エラーを示すためにグローバル変数 errno が設定されます。

エラー

errno には、次のエラーコードが設定されます。
[ ENAMETOOLONG]
返される path 要素が MAXPATHLEN より大きかった。

規格

dirname() 関数は X/Open Portability Guide Issue 4, Version 2 (“XPG4.2”) に準拠しています。

歴史

dirname() 関数は OpenBSD 2.2FreeBSD 4.2 で登場しました。

作者

Todd C. Miller
October 12, 2006 FreeBSD