table of contents
- bullseye 4.10.0-1
- bullseye-backports 4.18.1-1~bpo11+1
- testing 4.18.1-1
- unstable 4.18.1-1
LIBC(7) | Linux-Programmierhandbuch | LIBC(7) |
BEZEICHNUNG¶
libc - Überblick über C-Standardbibliotheken für Linux
BESCHREIBUNG¶
Der Begriff »Libc« wird allgemein als Abkürzung für die »Standard-C-Bibliothek« verwendet. Sie ist eine Bibliothek von Standardfunktionen, die von allen C-Programmen (und manchmal auch von Programmen in anderen Sprachen) verwendet werden können. Bedingt durch die geschichtliche Entwicklung (siehe unten) ist die Verwendung des Begriffs »Libc« als Verweis auf die Standard-C-Bibliothek für Linux nicht ganz eindeutig.
Glibc¶
Die mit Abstand meistverwandte C-Bibliothek unter Linux ist die GNU C-Bibliothek http://www.gnu.org/software/libc/ , die oft auch als Glibc bezeichnet wird. Dies ist die C-Bibliothek, die heutzutage in allen großen Linux-Distributionen verwendet wird. Es ist auch die C-Bibliothek, deren Einzelheiten in den entsprechenden Seiten des Projekts man-pages (vor allem in Abschnitt 3 des Handbuchs) dokumentiert sind. Dokumentation für die Glibc steht auch im Glibc-Handbuch zur Verfügung, das Sie mit dem Befehl info libc einsehen können. Version 1.0 der Glibc wurde im September 1992 veröffentlicht. (Ihr gingen 0.x-Versionen voran.) Die nächste Hauptversion von Glibc war 2.0 zu Beginn des Jahres 1997.
Der Pfadname /lib/libc.so.6 (oder etwas ähnliches) ist üblicherweise ein symbolischer Link auf den Speicherort der Glibc-Bibliothek. Die Eingabe dieses Pfadnamens veranlasst Glibc dazu, verschiedene Informationen über die auf Ihrem System installierte Version auszugeben.
Linux libc¶
Zu Anfang bis Mitte der 1990er Jahre gab es einige Zeit eine Abspaltung (Fork) von der Glibc 1.x, die Linux libc. Sie wurde von den Linux-Entwicklern gestartet, die die Entwicklung der Glibc zu dieser Zeit als nicht für die Erfordernisse von Linux angemessen empfanden. Oft wurde von dieser Bibliothek (nicht eindeutig) einfach als »Libc« gesprochen. Linux libc veröffentlichte die Hauptversionen 2, 3, 4 und 5 sowie darüber hinaus viele Nebenversionen dieser Veröffentlichungen. Linux libc4 war die letzte Version, die das Binärformat a.out verwendete und die erste Version, die (grundlegende) Unterstützung für Laufzeit-Bibliotheken bereitstellte. Linux libc 5 war die erste Version, die das Binärformat ELF unterstützte; diese Version verwendete als »soname« für die Laufzeit-Bibliothek libc.so.5.Einige Zeit war Linux libc die Standard-C-Bibliothek zahlreicher Linux-Distributionen.
Ungeachtet der ursprünglichen Motivation der Entwicklung der Linux Libc war bei der Veröffentlichung von Glibc 2.0 (1997) diese der Linux Libc klar überlegen. Alle wichtigen Linux-Distributionen, die die Linux Libc nutzten, wechselten bald wieder zur Glibc. Um das Durcheinander mit den Linux-Libc-Versionen zu vermeiden, verwendeten Glibc 2.0 und neuer den Soname libc.so.6 für dynamische Bibliotheken.
Da dieser Wechsel vor langer Zeit vollzogen wurde, kümmern sich die man-pages nicht mehr um die Dokumentation von Details der Linux libc. Gleichwohl finden sich in wenigen Handbuchseiten Spuren der Geschichte, insbesondere als Referenzen auf libc4 und libc5.
Weitere C-Bibliotheken¶
Es gibt verschiedene andere, weniger verbreitete C-Bibliotheken für Linux. Diese Bibliotheken sind im Allgemeinen kleiner als die Glibc, sowohl in Bezug auf Funktionen als auch auf Speicherbedarf. Oft werden sie zur Erzeugung kleiner Binärdateien genutzt und zielen auf die Entwicklung für eingebettete Linux-Systeme. Zu diesen Bibliotheken gehören die uClibc, die dietlibc und die musl libc. Einzelheiten dieser Bibliotheken werden vom Projekt man-pages abgedeckt, wenn sie bekannt sind.
SIEHE AUCH¶
syscalls(2), getauxval(3), proc(5), feature_test_macros(7), man-pages(7), standards(7), vdso(7)
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können, sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
12. Dezember 2016 | Linux |