OSDN Git Service

Update release for LDP 3.67
[linuxjm/LDP_man-pages.git] / release / man3 / dlopen.3
index 725a8d0..016f3f4 100644 (file)
@@ -73,7 +73,7 @@ linking) を行うローダへの インタフェースを実装したもので
 \fBdlclose\fP()  のいずれかで最後に発生したエラーについての説明メッセージを返す。
 初期化後または前回呼び出された後で、エラーが発生していなければ NULL を返す。
 .SS dlopen()
-関数 \fBdlopen\fP()  は、NULL 終端された文字列 \fIfilename\fP で指定されたファイル名の動的ライブラリ (dynamic
+関数 \fBdlopen\fP()  は、ヌル終端された文字列 \fIfilename\fP で指定されたファイル名の動的ライブラリ (dynamic
 library) をロードし、 その動的ライブラリへの内部「ハンドル」を返す。 \fIfilename\fP が NULL
 の場合、メイン・プログラムへのハンドルが返される。 \fIfilename\fP がスラッシュ ("/")
 を含む場合、(相対か絶対かの)パス名として解釈される。 それ以外の場合、動的リンカは以下の手順でライブラリを検索する (詳細は \fBld.so\fP(8)
@@ -145,7 +145,7 @@ lazy binding (手抜きなシンボルの結び付け) が行う。 シンボル
 フラグ付きで既にオープンされているライブラリを使って解決される。 実行ファイルが "\-rdynamic" フラグ ("\-\-export\-dynamic"
 も同義)  付きでリンクされている場合は、実行ファイル中のグローバルシンボルも、 動的にロードされるライブラリ内の参照解決に用いられる。
 .PP
\90\8cã\81\98ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81\8c \fBdlopen\fP()  ã\81«ã\82\88ã\81£ã\81¦å\86\8d度ã\83­ã\83¼ã\83\89ã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81å\90\8cã\81\98ã\83\95ã\82¡ã\82¤ã\83«ハンドルが返される。 dl
\90\8cã\81\98ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81\8c \fBdlopen\fP()  ã\81«ã\82\88ã\81£ã\81¦å\86\8d度ã\83­ã\83¼ã\83\89ã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81å\90\8cã\81\98ã\83©ã\82¤ã\83\96ã\83©ã\83ªハンドルが返される。 dl
 ライブラリはライブラリハンドルのリンク数を管理している。 したがって動的ライブラリは \fBdlclose\fP()  が \fBdlopen\fP()
 と同じ回数だけ呼び出されない限りアンロードされない。 \fB_init\fP()  ルーチンは一度だけ呼び出される (\fB_init\fP()
 が存在する場合のみ)。 \fBRTLD_NOW\fP が指定されて \fBdlopen\fP()  が呼び出された場合、 \fBRTLD_LAZY\fP
@@ -280,24 +280,25 @@ main(int argc, char **argv)
 
     cosine = (double (*)(double)) dlsym(handle, "cos");
 
-    /* According to the ISO C standard, casting between function
-       pointers and 'void *', as done above, produces undefined results.
-       POSIX.1\-2003 and POSIX.1\-2008 accepted this state of affairs and
-       proposed the following workaround:
+    /* ISO の C 標準によれば、上のような、関数ポインタと 'void *' 間の
+       キャストを行った場合に得られる結果は不定である。
+       POSIX.1\-2003 と POSIX.1\-2008 では、この状況は認められており、
+       以下のようなワークアラウンドが提案されている。
 
            *(void **) (&cosine) = dlsym(handle, "cos");
 
-       This (clumsy) cast conforms with the ISO C standard and will
-       avoid any compiler warnings.
+       この (ぶかっこうな) キャストは ISO の C 標準に従っており、
+       コンパイラの警告を避けることができる。
 
 .\" http://pubs.opengroup.org/onlinepubs/009695399/functions/dlsym.html#tag_03_112_08
 .\" http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlsym.html#tag_16_96_07
 .\" http://austingroupbugs.net/view.php?id=74
-       The 2013 Technical Corrigendum to POSIX.1\-2008 (a.k.a.
-       POSIX.1\-2013) improved matters by requiring that conforming
-       implementations support casting 'void *' to a function pointer.
-       Nevertheless, some compilers (e.g., gcc with the '\-pedantic'
-       option) may complain about the cast used in this program. */
+       POSIX.1\-2008 の 2013 Technical Corrigendum (別名 POSIX.1\-2013)
+       では、 POSIX に準拠する実装では 'void *' から関数ポインタへの
+       キャストをサポートすることが要求されるようになり、状況が改善
+       された。にもかかわらず、('\-pedantic' オプションを指定した gcc
+       などの) いくつかのコンパイラは、このプログラムで使用されている
+       キャストについて文句を言うのだ。
 
     error = dlerror();
     if (error != NULL) {
@@ -329,6 +330,6 @@ main(int argc, char **argv)
 
 ld.so info pages, gcc info pages, ld info pages
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.64 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。