.\" 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 書式
.\" commit 65cfc6722361570bfe255698d9cd4dccaf47570d
Linux 2.6.39 以降では、 \fIpathname\fP に空文字列を指定できる。 その場合、呼び出しは \fIdirfd\fP
-ã\81\8cå\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81«å¯¾ã\81\97ã\81¦è¡\8cã\82\8fã\82\8cã\82\8b (\fIdirfd\fP ã\81¯ \fBopen\fP(2) ã\81® \fBO_PATH\fP ã\83\95ã\83©ã\82°ã\82\92使ã\81£ã\81¦å\8f\96å¾\97ã\81§ã\81\8dã\82\8b)ã\80\82 ã\81\93ã\81®å ´å\90\88ã\80\81
-\fIdirfd\fP はディレクトリだけでなく、ファイルを参照していてもよい。
+ã\81\8cå\8f\82ç\85§ã\81\99ã\82\8bã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81«å¯¾ã\81\97ã\81¦è¡\8cã\82\8fã\82\8cã\82\8b (\fIdirfd\fP ã\81¯ã\83\95ã\83©ã\82° \fBO_PATH\fP ã\81¨ \fBO_NOFOLLOW\fP ã\82\92æ\8c\87å®\9aã\81\97ã\81\9f
+\fBopen\fP(2) を使って取得すべきである)。
.PP
\fBreadlinkat\fP() の必要性についての説明については \fBopenat\fP(2) を参照。
.SH 返り値
用のバッファを動的に割り当てる方法でも、 バッファサイズとして \fIPATH_MAX\fP を使用する場合に共通する移植性の問題を解決することができる。
なぜなら、POSIX では、 システムがそのような上限値を定義していない場合には、 \fIPATH_MAX\fP
が定義されることが保証されていないからである。
+.SS "glibc での注意"
+\fBreadlinkat\fP() が利用できない古いカーネルでは、 glibc ラッパー関数は \fBreadlink\fP()
+を使用するモードにフォールバックする。 \fIpathname\fP が相対パスの場合、 glibc は \fIdirfd\fP 引き数に対応する
+\fI/proc/self/fd\fP のシンボリックリンクに基づいてパス名を構成する。
.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.78 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。