Нужны подробности реализации. Если вы рассчитываете, что с вашей реализацией библиотеки должны работать и сторонние программы, то, как минимум, не надо ломать API при изменении функции.
Вариант реализации:
- Сделать в функции два code path. Один - как был раньше. Другой - какой нужен. Переключение осуществлять по значению переменной окружения. Ещё один вариант - сделать переменную-переключатель. Это, конечно, неудачные варианты, но если программа работает в одном потоке то по принципу "и так сойдёт" - вполне будет работать.
- Можно попробовать для своего случая подмену функции с помощью библиотеки, загружаемой через
LD_PRELOAD
. Тоже не самый лучший вариант, но можно рассмотреть.
- Таки определить другую функцию и переписать кусочек программы. Оптимальный вариант.