Provided by: manpages-ja-dev_0.5.0.0.20180315+dfsg-1_all bug

名前

       uselib - 共有ライブラリを選択する

書式

       #include <unistd.h>

       int uselib(const char *library);

説明

       システムコール uselib()  は、呼び出し元プロセスが使用する 共有ライブラリをロードする際に使用される。 この
       システムコールにはライブラリのパス名を指定する。 ライブラリをロードするアドレスはライブラリ自身に書かれて
       いる。 ライブラリは認識可能なバイナリ形式であればどんな形式でもよい。

返り値

       成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。

エラー

       open(2)  と mmap(2)  が返すエラーコードに加えて、以下のエラーコードが設定されることがある。

       EACCES library で指定されたライブラリに対する読み込み許可、または実行許可がない。 もしくは library が存在
              するディレクトリかその上位のいずれかに対する検索許可がない (path_resolution(7)  も参照)。

       ENFILE オープンされたファイルの総数がシステム全体の上限に達していた。

       ENOEXEC
              library で指定されたファイルが、実行可能ファイルと認識されるファイル種別ではない。  例えば、正しい
              マジックナンバーが付いていない。

準拠

       uselib()  は Linux 特有の関数であり、移植性を持たせたいプログラム には使用すべきでない。

注意

       初期の libc の起動コードは、 uselib()  を使って、 バイナリ中のリストに書かれている共有ライブラリを リスト
       中のそのままの名前でロードしていた。

       libc 4.3.2 以降では、これらの名前の前に "/usr/lib", "/lib",  ""  を  つけて共有ライブラリを探すようになっ
       た。 libc 4.3.4 以降では、これらの名前の共有ライブラリをまず LD_LIBRARY_PATH で指定されたディレクトリで探
       し、見つからなければ、 名前の前に "/usr/lib", "/lib", "/" をつけて探す。

       libc 4.4.4 以降では、ライブラリ "/lib/ld.so" だけがロードされ、その後で この動的ライブラリが  (このシステ
       ムコールをもう一度使って)  必要な残りのライブラリをロードできるようになっている。

       glibc2 は、このシステムコールを使用しない。

関連項目

       ar(1), gcc(1), ld(1), ldd(1), mmap(2), open(2), dlopen(3), capabilities(7), ld.so(8)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。