我在哪裏可以找到我的gcc編譯器目前正在使用的malloc的代碼?我實際上想寫我自己的malloc函數,它會與原始函數有點不同。我知道我可以使用鉤子等,但我想看到真實的代碼。malloc和free的代碼
回答
POSIX接口是defined here。
如果你想找出的GNU/Linux(glibc的)C庫是如何實現malloc
,去從http://ftp.gnu.org/gnu/glibc/獲得源代碼,並期待在malloc/malloc.c
文件。
還有一個描述米(埃默裏)頁頭(ATOR)的理論Memory Allocator by Doug Lea的基礎文件(閱讀本carrefully,然後決定是否真的需要實現自己的malloc)。
所使用的一些信息,而不是FSF/GNU支持者,但沒有地方,因爲我們正在仔細研究GNU/Linux的GNU代碼部分,所以這更好的強調了你應該說GNU/Linux的事實......希望至少Stallman能夠贊成評論:D – ShinTakezou
@ ShinTakezou:如果RMS的機器人沒有檢測到我的錯誤,我將upvoted您的評論(並更正了我的答案); –
+1鏈接到Doug Lea的文本 –
請在適當版本的glibc上查看old release site 或here。例如,如果您使用的是glib 2.9,則它位於this archive中。查找文件malloc/malloc.c
。
你會發現它並不是一個簡單的庫代碼。
看起來他們的glibc-2.9後更改的目錄結構。
malloc()
應該是glibc。
進一步閱讀的malloc
Multithreading
C++ allocation tricks [Video]
- 1. 在此代碼中替換malloc/free
- 2. 如何跟蹤malloc和free?
- 3. 由malloc和free行爲
- 4. free from malloc
- 5. LD_PRELOADing malloc and free
- 6. Suse中的Malloc/free算法
- 7. SECCOMP:如何模擬malloc,realloc和free?
- 8. Boost pool malloc()和free()編譯器錯誤
- 9. Visual Studio 2010 Ultimate,查找malloc()和free()對
- 10. 錯誤使用malloc()和free()函數
- 11. C指針分配malloc()和free()C
- 12. 內存峯值,並使用malloc和free
- 13. 使用malloc/free與類
- 14. C malloc/free + fgets性能
- 15. 在android中使用malloc/free
- 16. malloc/free。可以從釋放的內存
- 17. free()C中的2D數組使用malloc
- 18. 另一個malloc/free的難題
- 19. AMESim中malloc/free 2D數組的問題
- 20. 使用new/delete,但不使用malloc/free在C++代碼中崩潰
- 21. 使用的malloc和free:無效的下一個尺寸誤差
- 22. linux new/delete,malloc/free大內存塊
- 23. malloc/free,似乎獲得多個空閒
- 24. 如何確保malloc/free fopen/fclose匹配?
- 25. 用C++替換malloc/free /刪除
- 26. 使用分配器來替換malloc()/ free()?
- 27. 在Objective-C對象中使用malloc/free
- 28. malloc和指針代碼演示
- 29. malloc和free的內存操作到底做了什麼?
- 30. 有問題,寫我自己的malloc,free和realloc
寫malloc(),然後得到定義。 (通常是F12) –
我在Linux中工作,不使用任何調試器。我想知道它在哪裏找到的文件。 – MetallicPriest
除非你只是將其作爲一種學習體驗,否則這是一個非常糟糕的主意。重新定義標準函數,特別是與malloc一樣核心的東西,會導致脆弱的,不可移植的代碼。 –