摘要: 在程序中使用#error可以在编译的时候强制产生一个错误及提示例如:#ifndef SIGSEGV#error "SIGNAL.H does not define SIGSEGV; running this program WILL cause a core dump/crash!"#endif例如:int main(){ #error "this is just used to test!" return 0;}[root@lihao /]# makecc test.c test.c:6:2: #error "this is just use 阅读全文
posted @ 2013-04-02 14:06 only_eVonne 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 打算优化系统的内存分配,接管glibc提供的内存管理,但是整个工程的代码量很大,使用malloc、realloc、calloc和free的地方到处都是,如果自己写好的接口需要重命名所有的调用,先不说工作量,部分没有权限查看代码的.a文件就搞不定了。所以需要替换掉系统的malloc,保证原有调用的名称不变。经过尝试,共有四种方法可以替换,各有优缺点吧。方案1 使用环境变量LD_PRELOAD 环境变量LD_PRELOAD指定程序运行时优先加载的动态连接库,这个动态链接库中的符号优先级是最高的。标准C的各种函数都是存放在libc.so.6的文件中,在程序运行时自动链接。使用LD_PRELOAD后, 阅读全文
posted @ 2013-04-02 13:08 only_eVonne 阅读(2450) 评论(0) 推荐(0) 编辑