uselib() - Unix,Linux 系統呼叫 - 技術教學
Tutorials Point


  Unix 初學者指南
  Unix Shell 程式設計
  高階 Unix
  Unix 有用參考
  Unix 有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於 TP  

uselib() - Unix,Linux 系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

uselib - 載入共享庫

語法

#include <unistd.h> 

int uselib(const char *library);

描述

系統呼叫uselib()用於載入呼叫程序要使用的共享庫。它接收一個路徑名。載入位置的地址在庫本身中找到。庫可以具有任何識別的二進位制格式。

返回值

成功時,返回零。發生錯誤時,返回 -1,並且errno被相應地設定。

錯誤

除了open(2)和mmap(2)返回的所有錯誤程式碼外,還可能返回以下錯誤程式碼

標籤描述
EACCES library指定的庫沒有讀取或執行許可權,或者呼叫者對路徑字首中的某個目錄沒有搜尋許可權。(另請參見path_resolution(2))。
ENFILE 已達到系統對開啟檔案總數的限制。
ENOEXEC
 library指定的檔案不是已知型別的可執行檔案,例如,沒有正確的幻數。

符合標準

uselib()是 Linux 特定的,不應在旨在可移植的程式中使用。

備註

uselib()由早期的 libc 啟動程式碼使用,以載入在二進位制檔案中名稱陣列中找到的共享庫。

從 libc 4.3.2 開始,啟動程式碼在放棄之前嘗試在這些名稱前加上“/usr/lib”、“/lib”和“”字首。在 libc 4.3.4 及更高版本中,在這些目錄中查詢 LD_LIBRARY_PATH 中找到的目錄,如果未找到,則嘗試字首“/usr/lib”、“/lib”和“/”。

從 libc 4.4.4 開始,僅載入庫“/lib/ld.so”,以便此動態庫可以載入所需的其餘庫(再次使用此呼叫)。這也是 libc5 的狀態。

glibc2 不使用此呼叫。

參見



previous next Printer Friendly

廣告


  

廣告



廣告