gpt4 book ai didi

c - Linux函数重定向

转载 作者:太空狗 更新时间:2023-10-29 12:21:25 24 4
gpt4 key购买 nike

嘿,我想在我的程序中包装一个函数而不使用 LD_PRELOAD。

我有两个具有相同签名的函数:

void someFunc () {
puts ("someFunc");
}

void someFunc_wrapper () {
puts ("someFunc_wrapper");
}

我想通过调用包装函数将任何函数调用重定向到 someFunc。当然,我可以通过定义宏来做到这一点,或者将包装函数放入共享库中,然后像这样调用程序:

LD_PRELOAD=./mylib.so my_program

但是,我想在运行时重定向函数调用,而不修改程序调用。
据我了解,应该可以通过在运行时修改可执行文件的符号表来重定向这些调用。

任何帮助将不胜感激:)

最佳答案

ld 有选项 --wrap=symbol 应该做你想做的。手册页有一个它如何工作的例子。

关于c - Linux函数重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6236878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com