1
A
回答
3
我不确定“已加载”事件,但是如果您使用的是gcc
,则可能会发现constructor
属性有用。举个例子:
testlib.c: 的#include
void testing(void) __attribute__((constructor));
void testing(void)
{
printf("It worked!\n");
}
hworld.c:
#include <stdio.h>
int main(void)
{
printf("Hello world!\n");
return 0;
}
$ gcc -o hworld hworld.c
$ gcc -shared -fPIC -o testlib.so testlib.c
$ export LD_PRELOAD=./testlib.so
$ ./hworld
It worked!
Hello world!
的constructor属性意味着该函数应该main()
之前执行。或者,如果您使用的是C++,则可以创建一个类的静态全局实例,该实例的构造函数进行初始化,这将实现与使用constructor
相同的效果。
相关问题
- 1. 由LD_PRELOAD指定的lib无法加载
- 2. LD_PRELOAD不预加载所有符号
- 3. 图书馆将只与LD_PRELOAD加载
- 4. 如何使静态链接ELF文件加载LD_PRELOAD .so
- 5. IComponent加载事件
- 6. jQuery加载事件
- 7. 带文件功能的LD_PRELOAD
- 8. JQuery的加载事件
- 9. Grid的加载事件
- 10. Jquery单击事件以加载事件
- 11. AIX上的LD_PRELOAD
- 12. LD_PRELOAD与几个源文件
- 13. jquery预加载事件
- 14. Javascript文档加载事件
- 15. iframe中加载事件
- 16. iframe加载事件后?
- 17. 在程序加载事件..?
- 18. GoogleMapAPIv3街景加载事件
- 19. HTML5 Appcache加载事件
- 20. 在datepicker中加载事件
- 21. UIWebView完成加载事件
- 22. Angularjs图像加载事件
- 23. 分析WPF加载事件
- 24. FormClosing()事件加载两次
- 25. Angular2懒加载事件
- 26. JQuery UI加载事件?
- 27. 加载项SelectChange()事件
- 28. 模板加载事件
- 29. ReportViewerForMvc事件报告加载
- 30. 加载事件问题
谢谢!但我注意到这个构造函数多次调用了一次,你能帮助如何修复它吗?谢谢! – user1262425
@ user1262425你可以更新一个你看到它不止一次被调用的例子吗? Afaik应该只在'main()'运行之前调用一次。 – FatalError