2014-02-24 148 views
1

当解决从共享库派生的函数时,我遇到了一个问题,并意识到问题与BIND_NOW有关,这是ELF的安全功能之一。什么是Linux ELF上的BIND_NOW?

由于网上没有足够的信息,此刻我无法再走得更远。什么是BIND_NOW?

在此先感谢。 :)

雷克斯。

回答

3

这意味着解决右而载入从man 3 dlopen引用所述对象(而不是被使用时,并称其为迟缓结合)

符号:

One of the following two values must be included in flag: 

    RTLD_LAZY 
      Perform lazy binding. Only resolve symbols as the code that 
      references them is executed. If the symbol is never 
      referenced, then it is never resolved. (Lazy binding is 
      performed only for function references; references to 
      variables are always immediately bound when the library is 
      loaded.) 

    RTLD_NOW 
      If this value is specified, or the environment variable 
      LD_BIND_NOW is set to a nonempty string, all undefined symbols 
      in the library are resolved before dlopen() returns. If this 
      cannot be done, an error is returned. 

EDITED:另见this link ,我在Google上搜索时发现的。

+0

非常感谢!我会搜索更多:) –