Как я могу переопределить функции C (как с LD_PRELOAD) во время выполнения?

У меня есть некоторый код Python, который использует библиотеку, которая реализует виртуальные файловые системы. Чтобы драйверы этих виртуальных файловых систем работали, необходимо переопределить / заменить набор функций языка Си (таких как readdir (), opendir (), fseek ()) с заменами, определенными в файле .so / .cpp. Обычно это можно сделать, установив LD_PRELOAD в этот файл .so. Однако мне нужно иметь возможность переопределить эти функции во время выполнения и в идеале вернуться к не переопределенным функциям после выполнения функций Python, использующих эти переопределенные функции. Это возможно?

2

Решение

Я предполагаю, что вы хотите ctypes. Вот обсуждение: https://docs.python.org/2/library/ctypes.html

2

Другие решения


По вопросам рекламы [email protected]