2011-07-13 80 views
1

malloc鉤子的文檔可以在這裏找到http://www.gnu.org/s/hello/manual/libc/Hooks-for-Malloc.html在malloc鉤子的文檔中,「保存底層鉤子」是什麼意思?

在執行malloc()free()的掛鉤函數時,必須保存底層的掛鉤。

/* Save underlying hooks */ 
old_malloc_hook = __malloc_hook; 
old_free_hook = __free_hook; 

我明白malloc掛鉤,但不是這部分。爲什麼要再次設置old_malloc_hook。我認爲它給原始的malloc()函數提供了一個參考(或這樣的東西)?

感謝提前:)

回答

2

的想法是,一旦你的鉤子被激活,你的鉤子函數有控制,你然後還原任何現有的鉤向內恢復通話向一個真正的malloc()。

如果每個想要掛接malloc的子系統都這樣做,那麼每個掛鉤都會被激活,而不管誰先進行了安裝。