OSDN Git Service

Convert release and draft pages to UTF-8.
[linuxjm/jm.git] / manual / LDP_man-pages / release / man2 / uselib.2
index 7c84739..e1a6302 100644 (file)
 .\" Updated 2005-02-28, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\" Updated 2005-04-20, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\"
-.\"WORD:       Linux-specific          Linux ÆÃÍ­
+.\"WORD:       Linux-specific          Linux 特有
 .\"
 .TH USELIB 2 2005-01-09 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-uselib \- ¶¦Í­¥é¥¤¥Ö¥é¥ê¤òÁªÂò¤¹¤ë
-.SH ½ñ¼°
+.SH 名前
+uselib \- 共有ライブラリを選択する
+.SH 書式
 .B #include <unistd.h>
 .sp
 .BI "int uselib(const char *" library );
-.SH ÀâÌÀ
-¥·¥¹¥Æ¥à¥³¡¼¥ë
+.SH 説明
+システムコール
 .BR uselib ()
-¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬»ÈÍѤ¹¤ë
-¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤¹¤ëºÝ¤Ë»ÈÍѤµ¤ì¤ë¡£
-¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤Ï¥é¥¤¥Ö¥é¥ê¤Î¥Ñ¥¹Ì¾¤ò»ØÄꤹ¤ë¡£
-¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤¹¤ë¥¢¥É¥ì¥¹¤Ï¥é¥¤¥Ö¥é¥ê¼«¿È¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£
-¥é¥¤¥Ö¥é¥ê¤Ïǧ¼±²Äǽ¤Ê¥Ð¥¤¥Ê¥ê·Á¼°¤Ç¤¢¤ì¤Ð¤É¤ó¤Ê·Á¼°¤Ç¤â¤è¤¤¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤·¡¢
+は、呼び出し元プロセスが使用する
+共有ライブラリをロードする際に使用される。
+このシステムコールにはライブラリのパス名を指定する。
+ライブラリをロードするアドレスはライブラリ自身に書かれている。
+ライブラリは認識可能なバイナリ形式であればどんな形式でもよい。
+.SH 返り値
+成功した場合 0 を返す。失敗した場合 \-1 を返し、
 .I errno
-¤ò¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤹ¤ë¡£
-.SH ¥¨¥é¡¼
+をエラーの内容に従って設定する。
+.SH ã\82¨ã\83©ã\83¼
 .BR open (2)
-¤È
+と
 .BR mmap (2)
-¤¬ÊÖ¤¹¥¨¥é¡¼¥³¡¼¥É¤Ë²Ã¤¨¤Æ¡¢°Ê²¼¤Î¥¨¥é¡¼¥³¡¼¥É¤¬ÀßÄꤵ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£
+が返すエラーコードに加えて、以下のエラーコードが設定されることがある。
 .TP
 .B EACCES
 .I library
-¤Ç»ØÄꤵ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¡¢¤Þ¤¿¤Ï¼Â¹Ôµö²Ä¤¬¤Ê¤¤¡£
-¤â¤·¤¯¤Ï
+で指定されたライブラリに対する読み込み許可、または実行許可がない。
+もしくは
 .I library
-¤¬Â¸ºß¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤½¤Î¾å°Ì¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ë¸¡º÷µö²Ä¤¬¤Ê¤¤
+が存在するディレクトリかその上位のいずれかに対する検索許可がない
 .RB ( path_resolution (7)
-¤â»²¾È)¡£
+も参照)。
 .TP
 .B ENFILE
-¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤξå¸Â¤Ë㤷¤¿¡£
+オープンされたファイルの総数がシステム全体の上限に達した。
 .TP
 .B ENOEXEC
 .I library
-¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¡¢¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Èǧ¼±¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¼ïÊ̤ǤÏ
-¤Ê¤¤¡¢¤Ä¤Þ¤êÀµ¤·¤¤¥Þ¥¸¥Ã¥¯¡¦¥Ê¥ó¥Ð¡¼¤¬ÉÕ¤¤¤Æ¤¤¤Ê¤¤¡£
-.SH ½àµò
+で指定されたファイルが、実行可能ファイルと認識されるファイル種別では
+ない、つまり正しいマジック・ナンバーが付いていない。
+.SH 準拠
 .BR uselib ()
-¤Ï Linux ÆÃÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢°Ü¿¢À­¤ò»ý¤¿¤»¤¿¤¤¥×¥í¥°¥é¥à
-¤Ë¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ê¤¤¡£
-.SH Ãí°Õ
-½é´ü¤Î libc ¤Îµ¯Æ°¥³¡¼¥É¤Ï¡¢
+は Linux 特有の関数であり、移植性を持たせたいプログラム
+には使用すべきでない。
+.SH 注意
+初期の libc の起動コードは、
 .BR uselib ()
-¤ò»È¤Ã¤Æ¡¢
-¥Ð¥¤¥Ê¥êÃæ¤Î¥ê¥¹¥È¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò
-¥ê¥¹¥ÈÃæ¤Î¤½¤Î¤Þ¤Þ¤Î̾Á°¤Ç¥í¡¼¥É¤·¤Æ¤¤¤¿¡£
+を使って、
+バイナリ中のリストに書かれている共有ライブラリを
+リスト中のそのままの名前でロードしていた。
 .LP
 .\" libc 4.3.1f - changelog 1993-03-02
-libc 4.3.2 °Ê¹ß¤Ç¤Ï¡¢¤³¤ì¤é¤Î̾Á°¤ÎÁ°¤Ë "/usr/lib", "/lib", "" ¤ò
-¤Ä¤±¤Æ¶¦Í­¥é¥¤¥Ö¥é¥ê¤òõ¤¹¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
+libc 4.3.2 以降では、これらの名前の前に "/usr/lib", "/lib", "" を
+つけて共有ライブラリを探すようになった。
 .\" libc 4.3.4 - changelog 1993-04-21
-libc 4.3.4 °Ê¹ß¤Ç¤Ï¡¢¤³¤ì¤é¤Î̾Á°¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò¤Þ¤º
+libc 4.3.4 以降では、これらの名前の共有ライブラリをまず
 .B LD_LIBRARY_PATH
-¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Çõ¤·¡¢¸«¤Ä¤«¤é¤Ê¤±¤ì¤Ð¡¢
-̾Á°¤ÎÁ°¤Ë "/usr/lib", "/lib", "/" ¤ò¤Ä¤±¤Æõ¤¹¡£
+で指定されたディレクトリで探し、見つからなければ、
+名前の前に "/usr/lib", "/lib", "/" をつけて探す。
 .LP
-libc 4.4.4 °Ê¹ß¤Ç¤Ï¡¢¥é¥¤¥Ö¥é¥ê "/lib/ld.so" ¤À¤±¤¬¥í¡¼¥É¤µ¤ì¡¢¤½¤Î¸å¤Ç
-¤³¤ÎưŪ¥é¥¤¥Ö¥é¥ê¤¬ (¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¤â¤¦°ìÅٻȤäÆ)
-ɬÍפʻĤê¤Î¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
+libc 4.4.4 以降では、ライブラリ "/lib/ld.so" だけがロードされ、その後で
+この動的ライブラリが (このシステムコールをもう一度使って)
+必要な残りのライブラリをロードできるようになっている。
 .LP
-glibc2 ¤Ï¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤Ê¤¤¡£
-.SH ´ØÏ¢¹àÌÜ
+glibc2 は、このシステムコールを使用しない。
+.SH 関連項目
 .BR ar (1),
 .BR gcc (1),
 .BR ld (1),