2009-12-30 6 views
28

Parfois, je veux rechercher les implémentations de fonctions dans le fichier stdlib, j'ai téléchargé le code source, mais c'est assez salissant.Où puis-je parcourir le code source pour libc en ligne (comme doxygen)

Juste greping n'est pas vraiment approprié en raison des nombreux hits.

Est-ce que quelqu'un connaît un style de page Web doxygen qui a la documentation.

La même chose vaut pour le noyau Linux.

Merci

+0

Merci pour vos réponses, mais peut-être je pas été assez clair. Je ne suis pas intéressé par l'API, je veux la mise en œuvre de l'API. Le code source réel merci – monkeyking

+0

singe, avez-vous essayé ma réponse? La recherche de code Google inclut le code source complet. –

+0

Oui merci, la recherche de code google semble faire ce que je veux. – monkeyking

Répondre

7

Que diriez-vous de la documentation this libc? Et peut-être this pour le noyau? Il y a aussi la recherche de code Google; here est un exemple de recherche.

Plus d'infos sur Google Code Search Vous pouvez saisir des requêtes de recherche comme ceci: package: linux-2.6 malloc pour toutes les références à malloc dans le noyau linux-2.6.

Modifier: La recherche de code Google est maintenant désactivée. Mais vous pouvez accéder au repo git au http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git et il a aussi la recherche.

+7

Le lien Novell est rompu. –

+4

Cette réponse doit être mise à jour. Malheureusement, la recherche de code Google n'est plus aussi bien. –

+0

Merci, Jonathon, j'ai inclus une alternative. Toujours à la recherche d'un bon remplacement pour libc .... –

1

Si vous utilisez GNU C (glibc), les fonctions (au-delà des extensions GNU) suivent the POSIX standard en ce qui concerne leurs arguments, leur implémentation, leurs échecs et leurs valeurs de retour. Si vous voulez jeter un coup d'oeil sous le capot des membres statiques, vous devrez regarder le code.

Chaque poussée (que je me souvienne) d'essayer et d'adopter quelque chose comme Doxygen pour glibc a été rejetée pour les raisons suivantes:

  1. redondants, POSIX déjà des documents presque tout thats exposés, ainsi que l'homme et d'info pages
  2. travail Trop d'abord
  3. Plus de travail pour les mainteneurs

En ce qui concerne le noyau va, Linux n'utilise un système très similaire à Doxygen appelé Kerneldoc.

2

Pour vous aider à naviguer dans la source vers la glibc, essayez quelque chose comme ctags ou cscope? Note: Je deviens plus bête à chaque fois que je regarde la source de la glibc, alors faites attention! :)

17

Vous devez vérifier si votre distribution utilise la vanille GLIBC ou la fourche EGLIBC (Debian et Ubuntu sont passés à EGLIBC).

Quoi qu'il en soit, le navigateur de référentiel pour la glibc est à http://sourceware.org/git/?p=glibc.git

La source est un peu compliqué par la présence de plusieurs versions des mêmes fichiers.

+1

Pour EGLIBC: http://www.eglibc.org/cgi-bin/viewcvs.cgi/ – Jacopo

+0

Merci pour le lien vers sourceware.org, anciennement sources.redhat.com –