6

だからこれは私が見ているシナリオです:

A、B、Cの3つのライブラリがあります。

  • ライブラリAは関数foo()を実装し、それをAPIとして公開します。
  • 関数foo()はPOSIXwrite()呼び出しを呼び出して、データを書き込みます。
  • ライブラリBはwrite()、linker-wrapオプションを使用してglibc呼び出しにラッパーを書き込みます。
  • ライブラリCはAとBの両方にリンクしています。

ライブラリwrite()Cが行う呼び出しは、ラッパーライブラリBによってインターセプトされます。しかし、私の質問は、ライブラリCが呼び出す場合foo()write()foo()内の呼び出しはBによってインターセプトされるのでしょうか。

4

1 に答える 1

2

Aとリンクされている場合は-wrap=writefooラッパーを呼び出します。そうでない場合は、そうではありません。

の呼び出しについても同じことが言えwriteますC。呼び出しに関する限り、Aとの間で何の違いもありません。Cwrite

于 2012-09-21T20:50:23.570 に答える