我是C初學者,我想了解各種庫的實現方式。我查看/ usr/src/include下的所有文件。例如,我在看malloc.h,它所做的只是聲明extern函數。 所以我試圖找到這些功能的來源。我下載了gcc源代碼rpm,但看着gcc源代碼,它看起來更像是編譯器代碼,而不是像stdlib這樣的庫的代碼。 你能幫我指點一下正確的方向嗎?在哪裏可以找到c源代碼
謝謝。
我是C初學者,我想了解各種庫的實現方式。我查看/ usr/src/include下的所有文件。例如,我在看malloc.h,它所做的只是聲明extern函數。 所以我試圖找到這些功能的來源。我下載了gcc源代碼rpm,但看着gcc源代碼,它看起來更像是編譯器代碼,而不是像stdlib這樣的庫的代碼。 你能幫我指點一下正確的方向嗎?在哪裏可以找到c源代碼
謝謝。
您正在尋找glibc,而不是gcc。
我personnaly通過讀取微控制器系統庫如http://www.nongnu.org/avr-libc/學到了很多有趣的東西,但是這取決於你需要做的事情,它需要一個微控制器運行。
一個想法:根據你在找什麼,你可以去busybox:它是許多有用的系統命令的重新實現,你可以從中學到很多東西,並且運行它不需要專用計算機。
更新:我問相關的,從我不是導師POV得到了一些非常有趣的答案glibc的功能的問題: where to find select() source code in glibc source?
我在http://www.makelinux.net/kernel_map上發現了內核映射,這是內核代碼組織方式的一個很好的來源 – Jimm 2011-06-16 13:20:11
哇,那個內核映射正是我一直在尋找的!謝謝 – 2011-06-16 14:27:00
'gcc'源代碼*應*看起來像「編譯代碼」,畢竟,'gcc' **是一個編譯器。 – pavium 2011-06-16 12:36:45
有點遺憾:'malloc.h'是遺留的兼容性垃圾,不應該使用。 'malloc'的正確標題是'stdlib.h'。 – 2011-06-16 14:05:20