Я пишу приложение на C, в котором используется глобальная переменная (структура файла журнала). В моем приложении я динамически загружаю разделяемые библиотеки во время выполнения и хочу использовать глобальную переменную, указывающую на ту же структуру лог-файла, для ведения журнала в разделяемой библиотеке.
Это кажется невозможным при простом подходе:
- объявление глобальной переменной как extern не будет работать, потому что dlopen () говорит, что глобальная переменная является неопределенным символом
- определение глобальной переменной снова будет работать, но «новая» переменная не будет такой же, как «оригинальная» в исполняемом файле
Любой намек на то, как это исправить, было бы замечательно.
Спасибо!