Quelltext von printf() / stdio.h

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Abrissbirne
Beiträge: 2
Registriert: Fr Mai 24, 2019 10:06 pm

Quelltext von printf() / stdio.h

Beitrag von Abrissbirne » Fr Mai 24, 2019 10:25 pm

Hallo,

ich suche den Quelltext von z.B. printf() um besser zu verstehen, wie das Einbinden von Librarys funktioniert und weil mich interessiert, wie professioneller Quelltext aussieht.

stdio.h finde ich z.B. unter /usr/include/stdio.h. Darin finde ich aber nur die Deklaration von printf() und keinen Hinweis zur Definition.
Kann mir jemand auf die Sprünge helfen?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Quelltext von printf() / stdio.h

Beitrag von Xin » Fr Mai 24, 2019 11:04 pm

Abrissbirne hat geschrieben:
Fr Mai 24, 2019 10:25 pm
ich suche den Quelltext von z.B. printf() um besser zu verstehen, wie das Einbinden von Librarys funktioniert und weil mich interessiert, wie professioneller Quelltext aussieht.
Eine Library ist der kompilierte Quelltext. Gewissermaßen ein Executable ohne main, das veröffentlicht welche Funktionen man aufrufen kann.

Je nach Compiler ist die libc mit Quelltext verfügbar. Beim GCC oder Clang ist das OpenSource, bei Visual Studio wage ich das zu bezweifeln.

Das ist definitiv professioneller Quelltext, aber der Quelltext ist nicht zwangsläufig auf Lesbarkeit optimiert.
Abrissbirne hat geschrieben:
Fr Mai 24, 2019 10:25 pm
stdio.h finde ich z.B. unter /usr/include/stdio.h. Darin finde ich aber nur die Deklaration von printf() und keinen Hinweis zur Definition.
Kann mir jemand auf die Sprünge helfen?
Die Deklaration erklärt dem Compiler, dass eine printf-Funktion existiert. Wenn Du gcc aufrufst, wird implizit die libc hinzugelinkt.

Im Prinzip ist printf ziemlich langweilig, weil es quasi nur eine andere printf-Funktion ruft ;)
https://sourceware.org/git/?p=glibc.git ... 0a;hb=HEAD

Spannend wird es dann hier:
https://sourceware.org/git/?p=glibc.git ... 0d;hb=HEAD

Die Quellcodes kannst Du Dir entweder clonen oder von Deiner Distribution aus dem Quellcode-Repository holen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Abrissbirne
Beiträge: 2
Registriert: Fr Mai 24, 2019 10:06 pm

Re: Quelltext von printf() / stdio.h

Beitrag von Abrissbirne » Sa Mai 25, 2019 2:59 pm

Vielen Dank. Das bringt mich ein ganzes Stück weiter.

Antworten