連結器與載入器與執行檔格式

Linux的dlopen函式(相當於Windows的LoadLibrary)的用途,下列何者最為適切?

  1. A開啟程式的原始碼進行編輯
  2. B像外掛程式(plugin)那樣,在執行中載入變得需要的共用函式庫並呼叫函式
  3. C開啟檔案,讀寫其中的資料
查看答案與解析

正確答案:B. 像外掛程式(plugin)那樣,在執行中載入變得需要的共用函式庫並呼叫函式

在一般的動態連結中,所使用的共用函式庫在啟動時就已決定。使用dlopen的話,可以在執行中指定名稱來載入函式庫,再以dlsym取出函式的位址並呼叫。由於可依設定或使用者的選擇來決定要使用哪個函式庫,常用於外掛程式的機制,以及「有就使用」之選用功能的實作。

  • A. 與原始碼的編輯無關。
  • B. 正確。不是在啟動時,而是在需要時才載入。
  • C. 開啟一般檔案的是fopen或open。
練習這個領域 前往領域頁面

連結器與載入器與執行檔格式的其他題目

  1. 當100個行程使用相同的共用函式庫時,關於實體記憶體的使用方式,下列何者正確?
  2. 對目的檔進行反組譯時,發現呼叫外部函式printf之指令的跳躍目標是0這樣的暫時值。這個值會在何時被正確填入?
  3. 關於嵌入式開發中使用的連結器腳本(linker script)的功用,下列何者正確?
  4. 在沒有作業系統的微控制器上,通電後啟動程式碼在呼叫main之前所進行的處理,下列何者正確?
  5. 關於ELF檔案中的「區段(section)」與「段(segment)」的差異,下列何者正確?

這個領域的比較