C 语言 interpositioning 示例代码

《C专家编程》中提到了 interpositioning,即自定义函数如果与库函数名重名可能会导致未定义的行为,为避免发生问题,建议尽量使用 static 关键字将函数作用域约束在本源文件中。

interpositioning 中文资料较少,不知道翻译成中文怎么说(打桩问题?重载?)。在纽约大学网站上找到了一份示例代码,可查看 Index of /~acase/fa14/cs201/demos/interpositioning,示例代码将 interpositioning 分了三类,编译、链接、运行时的interpositioning

interpositioning 示例代码 打包下载,可在 CentOS 7 x86_64 系统上直接编译运行,可使用 locate 定位so库具体位置。

[code lang=text]
[root@localhost interpositioning]# locate libdl.so
/usr/lib64/libdl.so
/usr/lib64/libdl.so.2
[root@localhost interpositioning]# LD_PRELOAD="/usr/lib64/libdl.so ./mymalloc.so" ./hello
[/code]

遗留问题:需要研究 LD_PRELOAD,感觉代码里的 printf() 内调用的 free() 不是自定义的 free()

如无特殊说明,文章均为本站原创,转载请注明出处
源自: 王明军的博客
本文链接地址: C 语言 interpositioning 示例代码
广告

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.