OSDN Git Service

Update draft pages
[linuxjm/LDP_man-pages.git] / draft / man2 / readlink.2
index a688500..e47662a 100644 (file)
@@ -55,7 +55,7 @@
 .\" 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 書式
@@ -112,8 +112,8 @@ _ATFILE_SOURCE
 
 .\" 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 返り値
@@ -182,6 +182,10 @@ Linux 2.6.39 以降では、 \fIpathname\fP に空文字列を指定できる。
 用のバッファを動的に割り当てる方法でも、 バッファサイズとして \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() が提供する情報に基づいて動的に割り当てる。
@@ -234,13 +238,15 @@ main(int argc, char *argv[])
 
     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/ に書かれている。