.\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05
.\" Updated 2012-05-08, Akihiro MOTOKI <amotoki@gmail.com>
.\"
-.TH READLINK 2 2014\-05\-10 Linux "Linux Programmer's Manual"
+.TH READLINK 2 2014\-10\-15 Linux "Linux Programmer's Manual"
.SH 名前
readlink, readlinkat \- シンボリックリンクの値を読む
.SH 書式
\fIpathname\fP で指定されたパス名が絶対パスの場合、 \fIdirfd\fP は無視される。
.\" commit 65cfc6722361570bfe255698d9cd4dccaf47570d
-Linux 2.6.39 以降では、 \fIpathname\fP に空文字列を指定できる。 その場合、呼び出しは \fIdirfd\fP
-が参照するファイルに対して行われる (\fIdirfd\fP は \fBopen\fP(2) の \fBO_PATH\fP フラグを使って取得できる)。 この場合、
-\fIdirfd\fP はディレクトリだけでなく、ファイルを参照していてもよい。
+Since Linux 2.6.39, \fIpathname\fP can be an empty string, in which case the
+call operates on the symbolic link referred to by \fIdirfd\fP (which should
+have have been obtained using \fBopen\fP(2) with the \fBO_PATH\fP and
+\fBO_NOFOLLOW\fP flags).
.PP
\fBreadlinkat\fP() の必要性についての説明については \fBopenat\fP(2) を参照。
.SH 返り値
用のバッファを動的に割り当てる方法でも、 バッファサイズとして \fIPATH_MAX\fP を使用する場合に共通する移植性の問題を解決することができる。
なぜなら、POSIX では、 システムがそのような上限値を定義していない場合には、 \fIPATH_MAX\fP
が定義されることが保証されていないからである。
+.SS "glibc での注意"
+On older kernels where \fBreadlinkat\fP() is unavailable, the glibc wrapper
+function falls back to the use of \fBreadlink\fP(). When \fIpathname\fP is a
+relative pathname, glibc constructs a pathname based on the symbolic link in
+\fI/proc/self/fd\fP that corresponds to the \fIdirfd\fP argument.
.SH 例
以下のプログラムは、 \fBreadlink\fP() が必要とするバッファを、
\fBlstat\fP() が提供する情報に基づいて動的に割り当てる。
printf("\(aq%s\(aq points to \(aq%s\(aq\en", argv[1], linkname);
+ free(linkname);
+
exit(EXIT_SUCCESS);
}
.fi
.SH 関連項目
-\fBreadlink\fP(1), \fBlstat\fP(2), \fBstat\fP(2), \fBsymlink\fP(2),
+\fBreadlink\fP(1), \fBlstat\fP(2), \fBstat\fP(2), \fBsymlink\fP(2), \fBrealpath\fP(3),
\fBpath_resolution\fP(7), \fBsymlink\fP(7)
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.68 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.75 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。