REALPATH(3)

名称
realpath - 正規の絶対パス名を戻す

ライブラリ
libc

書式
#include <sys/param.h> #include <stdlib.h> char * realpath(const char *pathname, char resolved_path[MAXPATHLEN])

解説
realpath() 関数は、 pathname のすべてのシンボリックリンク、余分な “/” キャラクタ、 /./ と /../ のリファレンスを分析し、 resolved_path が参照するメモリに絶対パス名をコピーします。 resolved_path 引数は、少なくとも MAXPATHLEN キャラクタを保存できるバッファを参照している必要があります。

realpath() 関数は、絶対パスと相対パスの両方を分析し、 pathname に対応する絶対パス名を戻します。 pathname の最後のコンポーネント以外は、 readpath() を呼び出したときに存在している必要があります。

戻り値
realpath() 関数は、問題がなければ resolved_path を戻します。 エラーが発生した場合、 realpath() は NULL を戻し、問題となったパス名を resolved_path に入れます。

エラー
realpath() 関数がエラーとなると、ライブラリ関数 chdir(2), close(2), fchdir(2), lstat(2), open(2), readlink(2), getcwd(3) で指定されているエラーを外部変数 errno に設定することがあります。

警告
この realpath() の実装は、Solaris での実装とは多少異なります。 4.4BSD のバージョンは常に絶対パス名を戻しますが、Solaris での実装は、 ある状況下で、相対パス名が指定されると相対パス名を戻します。

関連項目
getcwd(3)

歴史
realpath() 関数は、 4.4BSD ではじめて登場しました。