链接到多个库,其中一个包装了一组系统调用

时间:2012-09-21 19:48:20

标签: c linux linker posix ld

所以这就是我正在看的场景:

我有3个库 - A,B和C.

  • 库A实现函数foo()并将其公开为API。
  • 函数foo()调用POSIX write()调用来写一些数据。
  • 库B使用链接器-wrap选项将包装器写入write() glibc调用。
  • 图书馆C链接到A和B.

库C进行的任何write()调用都将被包装器拦截 库B.但是,我的问题是,如果库C调用foo(),foo()内的write()调用是否会被B拦截?

1 个答案:

答案 0 :(得分:2)

如果A-wrap=write相关联,foo将调用包装器。如果不是,那就不会。

write中对C的调用也是如此。就调用A而言,Cwrite之间没有任何区别。