Man page - uselib(2)

Packages contains this manual

Available languages:

en fr it nl ja ru ro de

Manual

USELIB

名 前
書 式
説 明
返 り 値
エ ラ ー
準 拠
注 意
関 連 項 目
こ の 文 書 に つ い て

名 前

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

書 式

#include <unistd.h>

int uselib(const char * library );

Note : No declaration of this system call is provided in glibc headers; see NOTES.

説 明

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

返 り 値

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

エ ラ ー

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

EACCES

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

ENFILE

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

ENOEXEC

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

準 拠

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

注 意

This obsolete system call is not supported by glibc. No declaration is provided in glibc headers, but, through a quirk of history, glibc versions before 2.23 did export an ABI for this system call. Therefore, in order to employ this system call, it was sufficient to manually declare the interface in your code; alternatively, you could invoke the system call using syscall (2).

In ancient libc versions (before glibc 2.0), uselib () was used to load the shared libraries with names found in an array of names in the binary.

Since Linux 3.15, this system call is available only when the kernel is configured with the CONFIG_USELIB option.

関 連 項 目

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

こ の 文 書 に つ い て

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