在哪裡可以找到C語言標準庫的實現源代碼?

比如malloc(),memcpy()這樣的庫函數。


glibc --- http://www.gnu.org/software/libc/

uClibc --- uClibc

甚至你可以看android的bionic。


http://www.gnu.org/software/libc/

如果網頁嫌麻煩,可以先裝git,然後

git clone git://sourceware.org/git/glibc.git
cd glibc
git checkout --track -b glibc-2_11-branch origin/release/2.11/master

其實完全沒有必要全都看,無論你有沒有這個能力。因為由於歷史兼容等問題,C標準庫的代碼並不是很適合學習,裡面有些很雜亂。不過看過肯定比沒看好,畢竟都是牛人寫的。


推薦BSD系的libc

FreeBSD libc

NetBSD src/lib/libc/

OpenBSD src/lib/libc/


有本書叫C標準庫 (豆瓣)


贊同上面@張東亞 的回答

不過值得提醒的是,要想研究這些源代碼,恐怕需要具備一定的功力才行

如果基礎不夠就去深究,恐怕不是十分合適

這個跟武俠小說中練習上乘武功是一個道理


瞅瞅去,,無事,


贊同 @鬼道的答案,libc不適合作為入門,應該先看書。

很多比較簡單地函數,如aoti,libc中的實現與你想像中的string-to-integer還是有很大差別的。


glibc,GNU的實現。


推薦閱讀:

為什麼知乎用戶vczh不建議初學編程的人把C作為入門語言?
C語言的取余運算 a%b,如果a<b,那取余a,2%3=2,25%26=25,這是為什麼,規定?
開源代碼里某個函數很長,這種代碼能否認為是好的?
64 位系統中 long double 的最大值是多少?
有哪些適合學習的開源項目?

TAG:編程 | C編程語言 | CC |