MetálicoSacerdote
Sé cómo anular una biblioteca con LD_PRELOAD, por ejemplo, de la siguiente manera.
LD_PRELOAD=./getpid.so ./testpid
Ahora mi pregunta es cómo anular varios archivos. Digamos que quiero anular tanto getpid como getid, ¿cómo lo especificaría?
-
De acuerdo con la página del manual, también se aceptan dos puntos, por ejemplo:
LD_PRELOAD=path1:path2
–Isac Casapu
28 de diciembre de 2016 a las 13:20
-
Interesante. En la sección sobre LD_LIBRARY_PATH, la página menciona que los puntos y comas y los dos puntos son válidos, pero no menciona los espacios. El análisis de $ORIGIN, $LIB y $PLATFORM son (creo) nuevos. Los espacios siempre fueron un poco sorprendentes, y me parece extraño que sean válidos en LD_PRELOAD pero no en LD_LIBRARY_PATH.
– William Pursell
28 de diciembre de 2016 a las 13:45
-
Nótese que la página fechada en 2001 (de kernel.org/pub/linux/docs/man-pages/Archive/…) indica: ” LD_PRELOAD: una lista separada por espacios en blanco de bibliotecas compartidas ELF adicionales, especificadas por el usuario, que se cargará antes que todas las demás”. No puedo encontrar un cambio en binutils, y me gustaría saber si esto es simplemente una omisión en la documentación o si el comportamiento ha cambiado recientemente.
– William Pursell
28 de diciembre de 2016 a las 14:02
-
¡mmmm interesante! ¡Intentaré eso!
– Sacerdote Metálico
12 de diciembre de 2011 a las 12:37
-
es bueno hacer una sola biblioteca que contenga todas las funciones que desea, un poco más simple de hacer. esta respuesta es la mejor, aunque otras son más correctas.
– usuario7296055
4 de diciembre de 2017 a las 10:17