Может ли LD_PRELOAD заменить функцию, разрешенную с помощью dlopen()/dlsym()?C++

Программы на C++. Форум разработчиков
Anonymous
Может ли LD_PRELOAD заменить функцию, разрешенную с помощью dlopen()/dlsym()?

Сообщение Anonymous »

У меня есть сценарий, в котором:
  • Программа динамически загружает liba.so с помощью dlopen(), затем разрешает и вызывает из него функцию func1() через dlsym().
  • Я создал libb.so, который переопределяет функцию с тем же именем func1().
    Мой вопрос: можно ли использовать переменную среды LD_PRELOAD, чтобы заставить программу использовать func1() из libb.so вместо исходной func1() из liba.so? Если это невозможно по умолчанию, какие изменения (в программе, liba.so или libb.so) потребуются, чтобы LD_PRELOAD работал в этом случае?


Подробнее здесь: https://stackoverflow.com/questions/798 ... open-dlsym

Вернуться в «C++»