リンカ・ローダと実行形式
Linuxのdlopen関数(WindowsのLoadLibraryに相当)の使い道として最も適切なものはどれか。
- Aプログラムのソースコードを開いて編集する
- Bプラグインのように、実行中に必要になった共有ライブラリを読み込んで関数を呼ぶ
- Cファイルを開いて、中のデータを読み書きする
答えと解説を見る
正解:B. プラグインのように、実行中に必要になった共有ライブラリを読み込んで関数を呼ぶ
通常の動的リンクでは、使う共有ライブラリが起動時に決まっています。dlopenを使うと、実行中に名前を指定してライブラリを読み込み、dlsymで関数の番地を取り出して呼べます。どのライブラリを使うかを設定や利用者の選択で決められるので、プラグインの仕組みや、あれば使う任意の機能の実装によく使われます。
- A. ソースコードの編集とは関係ありません。
- B. 正しい。起動時ではなく必要になったときに読み込みます。
- C. 普通のファイルを開くのはfopenやopenです。