Используются две динамические библиотеки.( libPLX9054.so, libLan150.so)
В программе происходит загрузка библиотеки посредством вызова dlopen. В загружаемой библиотеке так же происходит загрузка другой библиотеки опять же посредством вызова функции dlopen. В обоих библиотеках содержится строковая константа:
char InterfaceName[] = "IPLX9054"; // описана в библиотеке libPLX9054.so
char InterfaceName[] = "ILan150"; // описана в библиотеке libLan150.so
- загрузка программой библиотеки libLan150.so
- загрузка билиотекой libLan150.so библиотеки libPLX9054.so
Обнаружил, что при выполнении кода в libPLX9054.so InterfaceName[] = «ILan150» , a не «IPLX9054». Как такое может быть? dlopen вызывается с флагом RTLD_NOW