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

广告


  

广告



广告