Технически, вы можете динамически загрузить альтернативную библиотеку с помощью dlopen, а затем извлечь адрес символов из нее с помощью dlsym.Это позволяет вам получить адрес функций и вызвать их код вместо стандартных.См., Например, эту страницу документации компоновщика .
Однако это будет по меньшей мере сложно реализовать в зависимости от размера затронутого и худшего кода, возможно, обреченного из-за низкого уровня выравниваниястандартная библиотека C и конфликты / несоответствия, которые это может означать.
Понимание того, что не так с вашим кодом (или libc), определенно будет лучшим подходом
Обновление :
Существует единственное пространство имен для символов, поэтому, насколько я знаю, нет способа сказать, как разрешать символы в зависимости от происхождения кода.Вам определенно нужно изменить свой код с помощью подхода, который я предлагаю.
В качестве альтернативы, вы можете разделить ваш код на две программы, связанные с их соответствующим libc, и заставить их обмениваться данными через сокеты, разделяемую память или что угодно, но это также подразумеваетпереписать (и перестроить) ваш код.