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

cra*_*33k 6 c linux linker posix ld

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

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

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

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

n. *_* m. 2

如果A与 链接-wrap=writefoo将调用包装器。如果不是,那就不会。

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