リンカ・ローダと実行形式

Linuxでlddコマンドを実行ファイルに使うと分かることはどれか。

  1. Aその実行ファイルが必要とする共有ライブラリと、それぞれが見つかる場所
  2. Bその実行ファイルのソースコード
  3. Cその実行ファイルが使ったCPUの時間
答えと解説を見る

正解:A. その実行ファイルが必要とする共有ライブラリと、それぞれが見つかる場所

lddは、動的リンクの実行ファイルや共有ライブラリが使う共有ライブラリの一覧と、それぞれがどのファイルに解決されるかを表示します。見つからないものは「not found」と表示されるので、起動しない原因を調べるのに役立ちます。なお、信頼できない実行ファイルに使うと、中のコードが実行されることがあるので注意が必要です。

  • A. 正しい。依存関係を調べるのに使います。
  • B. ソースコードは実行ファイルに含まれていません。
  • C. CPUの時間はtimeコマンドなどで測ります。
この分野を解く 分野ページへ

リンカ・ローダと実行形式のほかの問題

  1. 主なOSで使われる実行ファイルの形式の組み合わせとして正しいものはどれか。
  2. 再帰が深くなりすぎてスタックの上限を超えたとき、Linuxなどで一般に起こることとして正しいものはどれか。
  3. C言語で、初期値を書かない局所変数とグローバル変数の、使い始めたときの値について正しいものはどれか。
  4. mallocとfreeを繰り返すうちに、空きメモリの合計は十分あるのに、大きな領域をまとめて確保できなくなることがある。この現象を何と呼ぶか。
  5. 共有ライブラリを作るとき、外から使う関数だけを公開し、内部の関数はシンボルの可視性(visibility)を「hidden」にする利点として正しいものはどれか。