Wo finde ich Implementierungen von stdio.h-Funktionen?

Lesezeit: 2 Minuten

Benutzer-Avatar
Prista

Ich studiere C und habe festgestellt, dass ich die Implementierungsdatei für einige Header-Dateien nicht finden kann, wie zum Beispiel stdio.h Das ist eine Bibliothek, die viele Ein-/Ausgabefunktionen enthält, wie z printf. Wo finde ich seine Implementierung?

  • Normalerweise können Sie sich Implementierungen nicht ansehen, die Teil des Standard-C-Codes sind (und alle Standard-Header sind Teil des Standard-C-Codes).

    – AudioDroid

    8. März 2011 um 14:23 Uhr

  • @AudioDroid Warum ist das so? Hat ANSI ein Urheberrecht an der Implementierung? Oder wurde nur die Quellcode-Implementierung nie verteilt? Irgendwo MUSS jemand die Quelle haben, oder?

    – Minh Tran

    26. Dezember 2016 um 1:27 Uhr

  • @Minh Tran Wie Sie unten lesen können, liege ich damit eigentlich nicht richtig. Es gibt Open-Source-Implementierungen, die Sie sich ansehen können. Aber ansonsten, zB mit dem MS C-Compiler, ja, sie haben die Rechte an ihrer eigenen Implementierung. Der Standard definiert nur, wie er funktionieren muss, nicht, wie er zu implementieren ist.

    – AudioDroid

    4. Januar 2017 um 13:47 Uhr

Laden Sie eines davon herunter:

Oder, noch besser, laden Sie mehrere davon herunter und vergleichen Sie ihre Implementierungen. Natürlich machen diese wahrscheinlich viele Dinge anders im Vergleich zu dein bestimmte Standardbibliotheksimplementierung, wäre aber immer noch sehr interessant für zB nicht plattformspezifische Funktionalitäten wie sprintf.

Sie müssen den Quellcode für eine C-Standardbibliothek wie glibc finden: http://www.gnu.org/s/libc/

Die Quelle können Sie hier herunterladen: http://ftp.gnu.org/gnu/glibc/
Es enthält Quellen für alle Bibliotheksfunktionen.

  • Aha. die Implementierung von Funktionen sind in Bibliotheken eingebaut. Recht ?

    – Prista

    8. März 2011 um 14:13 Uhr

Zum Beispiel hier. Google ist dein Freund – suche einfach nach stdio.c. Aber beachten Sie, dass Sie diese als “eine Implementierung von vielen möglichen” behandeln sollten – Sie wissen nicht, wie Ihr Compiler es macht, wenn Sie diese lesen, Sie bekommen nur eine Vorstellung davon, wie es gemacht werden kann.

Unter Ubuntu oder einem anderen Betriebssystem, das aptitude für die Paketverwaltung verwendet, können Sie Folgendes verwenden:

apt-get source libc6

zum Beispiel.

Wenn Sie gcc im ausführlichen Modus ausführen, erfahren Sie außerdem die Details der verwendeten Pfade. Dies sollte Ihnen helfen, herauszufinden, welche Include- und Bibliothekspfade verwendet werden.

gcc -v

oder

gcc -Wl,--verbose

Wenn Sie das Windows SDK installieren, besteht die Möglichkeit, den Quellcode der Standardbibliothek einzuschließen, damit Sie auch sehen können, wie er unter Windows implementiert wird.

1353300cookie-checkWo finde ich Implementierungen von stdio.h-Funktionen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy