Wenn Sie sich auf einem von Debian abgeleiteten System befinden, können Sie apt-get source libc6
verwenden . Dadurch wird ein eglibc-2.12.1
entpackt Verzeichnis (Versionsnummer kann natürlich abweichen) in Ihrem aktuellen Arbeitsverzeichnis, und die pthreads-Unterstützung befindet sich in nptl/
Verzeichnis darunter. linuxthreads/
ist für den älteren Threading-Stil, falls Sie Archäologe sind.
Die meisten Linux verwenden eine libc-Version namens glibc
.
Das LXR (Online Cross Reference System) für glibc ist z.B. hier http://koala.cs.pub.ro/lxr/glibc/ für Version 2.9 (Link ist defekt). Ich muss sagen, dass etwas möglicherweise nicht lxr'ed ist, weil einige Quellen im Build-Prozess generiert werden, zum Beispiel - wie ich mich erinnere - Wrapper um Systemaufrufe.
Pthreads befinden sich in nptl/
Mappe. Der richtige Link zu den libc-Quellen ist http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.bz2 (oder ändern Sie 2.14 auf Ihre Version)
Update:Nach dem Schließen von Koalas lxr gibt es:
-
Metager mit glibc:http://code.metager.de/source/xref/gnu/glibc/(Wird mit OpenGrok von Sun bereitgestellt, das ursprünglich zum Generieren von Online-X-Refs für Solaris/OpenSolaris verwendet wurde) -
Google-Codesuche (ich weiß, dass sie geschlossen war, aber ich weiß auch, dass es eine andere Version gibt):
http://code.google.com/codesearch und versuchen Sie, etwas Glibc-spezifisches zu suchen
UPD (März 2013) Sie töteten die Codesuche erneut:
404. That’s an error.
Die angeforderte URL /codesearch wurde auf diesem Server nicht gefunden. Das ist alles, was wir wissen.
UPD 2017
-
Metager mit glibc:http://code.metager.de/source/xref/gnu/glibc/ -
Es gibt Online-Git von Glibc-Autoren:https://sourceware.org/git/?p=glibc.git (Baum ist unter https://sourceware.org/git/?p=glibc.git;a=tree durchsuchbar)
-
Glibc-Git wird auf GitHub gespiegelt (das einige Suchfunktionen hat) https://github.com/bminor/glibc Buildroot 2018.05 verwendet insbesondere diesen Spiegel.
-
Es gibt eine Suche wie die Codesuche von Google in allen Debian-Paketen:https://codesearch.debian.net/. Es kann in glibc-Quellen nach "Paket:glibc-Anforderung" suchen und hat auch einen Dateibrowser:http://sources.debian.net/src/glibc/
Probieren Sie die FreeBSD- und Linux-Kernel-Querreferenz aus.
Viel Spaß :)
Informationen zum Glibc-Repository:http://sourceware.org/glibc/wiki/GlibcGit
Klonen Sie es, um Ihre eigene Kopie zu erhalten, und durchsuchen Sie es nach Belieben:
git clone git://sourceware.org/git/glibc.git
Ich lade es in ein IDE-Projekt hoch (unter Verwendung einer beliebigen bevorzugten IDE) und die Code-Navigation funktioniert recht gut, damit ich finden kann, woran ich interessiert bin.
Durchsuchen Sie die Quelle online http://sourceware.org/git/?p=glibc.git