Использование dlopen () для исполняемого файла

Мне нужно вызвать функцию из другой программы. Если бы другая программа была библиотекой, я мог бы просто использовать dlopen и dlsym, чтобы получить дескриптор функции. К сожалению, другая программа - исполняемый файл Unix, и создание ее как библиотеки не вариант. Попытка dlopen () для исполняемого файла дает следующее сообщение об ошибке:

dlopen ([...] / testprogram, 1): не найдено подходящего изображения. Нашел: [...] / testprogram: невозможно отобразить

Это неудивительно, поскольку dlopen предназначен для использования с библиотеками, а не с исполняемыми файлами. Есть ли способ заставить dlopen и dlsym работать с исполняемыми файлами? Если нет, есть ли альтернативный способ добиться того же?

13
задан Jeff 8 July 2011 в 16:30
поделиться