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

Linuxなどでよく使われるELF形式のファイルについて正しいものはどれか。

  1. A実行ファイル専用の形式で、オブジェクトファイルには使えない
  2. Bオブジェクトファイル・実行ファイル・共有ライブラリのいずれにも使われ、ヘッダとセクションなどで構成される
  3. C画像を保存するための形式である
答えと解説を見る

正解:B. オブジェクトファイル・実行ファイル・共有ライブラリのいずれにも使われ、ヘッダとセクションなどで構成される

ELF(Executable and Linkable Format)は、Linuxをはじめ多くのUNIX系のOSや組込み機器で使われるプログラムのファイル形式です。先頭のELFヘッダに、対象のCPUや64ビットかどうか、実行を始める番地などが書かれ、その後に.textや.dataなどのセクションと、ローダがメモリに読み込む単位を表すプログラムヘッダが続きます。WindowsではPE形式、macOSではMach-O形式が使われます。

  • A. オブジェクトファイルも共有ライブラリもELFです。
  • B. 正しい。Executable and Linkable Formatの略です。
  • C. プログラムのための形式です。
この分野を解く 分野ページへ

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

  1. 実行ファイルの.textセクションに入っているものはどれか。
  2. C言語でファイルの外側に「int limit = 100;」と書いたグローバル変数は、一般にどのセクションに置かれるか。
  3. .bssセクションの特徴として正しいものはどれか。
  4. C言語の「char *p = "hello"; p[0] = 'H';」を実行すると、多くの環境で異常終了する。その理由として正しいものはどれか。
  5. 上のグローバル変数のうち、一般に.bssセクションに置かれるものの組み合わせはどれか。