Así que este es el escenario que estoy mirando:ligarse a varias bibliotecas, una de las cuales envuelve un conjunto de llamadas al sistema
tengo 3 - bibliotecas A, B y C.
- La biblioteca A implementa la función
foo()
y la expone como una API. - La función
foo()
llama a la llamada POSIXwrite()
para escribir algunos datos. - La biblioteca B escribe un derivador en la llamada glibc
write()
utilizando la opción del enlazador-envoltura. - Biblioteca C enlaces a ambos A y B.
Cualquier write()
llamada que la biblioteca C hace que conseguirá interceptado por la envoltura biblioteca B. Sin embargo, mi pregunta es, si la biblioteca C llama foo()
, será el write()
llamada dentro de foo() ser interceptado por B?
Intenta escribir el código y mira lo que sucede, eso es lo que haría. – fonZ
La función glibc 'write' es un contenedor de la llamada al sistema real. –
Gracias, @JonathanCruz. Estas eran bibliotecas hipotéticas de las que hablaba, y el comportamiento de la biblioteca contenedora en tal escenario habría sido un factor decisivo para ver si debía escribirlo. Sin embargo, ahora estoy trabajando en un caso de prueba más pequeño y ahora. Solo pensé que pasar a stackoverflow podría dar una respuesta más rápida :) – crazyg33k