所以这就是我正在关注的场景:
我有3个库 – A,B和C.
>库A实现函数foo()并将其公开为API.
>函数foo()调用POSIX write()调用来写一些数据.
>库B使用linker -wrap选项将包装器写入write()glibc调用.
>库C链接到A和B.
库C进行的任何write()调用都将被包装器拦截
库B.但是,我的问题是,如果库C调用foo(),foo()内的write()调用是否会被B拦截?
最佳答案
如果A与-wrap = write链接,foo将调用包装器.如果不是,它就不会.
关于用C语言编写的调用也是如此.就调用write而言,A和C之间没有任何区别.