要编写一个C/C++完全透明的包装器,可以通过以下步骤实现:
#include "original.h"
void wrapped_function(int arg1, int arg2) {
original_function(arg1, arg2);
}
gcc -c wrapper.c -o wrapper.o
gcc -shared -o libwrapper.so wrapper.o original.o
#include "wrapper.h"
wrapped_function(1, 2);
这样,通过包装器,使用者只需要调用包装函数,而无需直接调用原始函数。由于原始函数的实现被封装在静态库中,无法直接访问和重命名。这就实现了一个完全透明的包装器。