6

所以这是我正在研究的场景:

我有 3 个库 - A、B 和 C。

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

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

4

1 回答 1

2

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

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

于 2012-09-21T20:50:23.570 回答