www.wikidata.de-de.nina.az
Die C Standard Bibliothek englisch C standard library auch bekannt als libc ist die Standardbibliothek der Programmiersprache C In jeder standardkonformen betriebssystemgestutzten Implementierung hosted environment von C muss die C Standard Bibliothek in vollem Umfang vorhanden sein Hingegen mussen freistehende Umgebungen freestanding environment wie man sie beispielsweise im Embedded Bereich haufig antrifft nur eine festgelegte Untermenge der Standardbibliothek anbieten um standardkonform zu sein Inhaltsverzeichnis 1 Aufbau 2 Umfang 3 Entstehung 4 Header Dateien 4 1 Freistehende Implementierungen 5 Implementierungen der C Standard Bibliothek 6 Literatur 7 Weblinks 8 EinzelnachweiseAufbau BearbeitenFunktionsprototypen Makros Typdeklarationen und weitere Informationen sind in sogenannten Header Dateien hinterlegt die der Programmierer nach Bedarf mit Hilfe des C Praprozessors in den Quelltext seines Programms einbindet um dem Compiler mitzuteilen wie diese Funktionen zu verwenden sind Ublicherweise handelt es sich bei den Header Dateien um separate Dateien allerdings verlangt dies der C Standard nicht explizit der Compilerhersteller muss lediglich dafur sorgen dass sich seine C Umgebung so verhalt als ob Die tatsachliche Implementierung der Funktionen ist meist in eine Programmbibliothek ausgelagert Namensgebung und Gultigkeitsbereich einer Header Datei sind heute genormt die Organisation der Bibliotheken variiert jedoch je nach Anbieter Die C Standard Bibliothek wird meist vom Compilerhersteller implementiert es gibt jedoch auch nackte Compiler wie etwa gcc die die auf dem System vorhandene Bibliothek benutzen Compiler und System Standardbibliothek zusammen bilden hier das hosted environment Umfang BearbeitenDie C Standard Bibliothek enthalt etwa 200 haufig benotigte Funktionen fur Ein und Ausgabe mathematische Operationen Verarbeitung von Zeichenketten Speicherverwaltung und andere Bereiche C verfugt anders als traditionelle Sprachen vor allem Pascal und Fortran uber keine eingebauten komplexen Funktionalitaten fur z B Ein und Ausgabeoperationen Diese mussen daher von Funktionsbibliotheken zur Verfugung gestellt werden Im Vergleich zu den Bibliotheken anderer Sprachen namentlich zum Beispiel Java ist die C Standard Bibliothek minimalistisch Sie stellt nur einen grundlegenden Satz an mathematischen Funktionen Funktionen zur Zeichenkettenmanipulation Typkonvertierung sowie datei und konsolenbasierter Ein und Ausgabe zur Verfugung Sie stellt weder genormte Container Datentypen zur Verfugung wie es die C Standardbibliothek tut noch bietet sie Unterstutzung fur grafische Benutzeroberflachen Netzwerkfunktionalitaten und anderes was in anderen Sprachen heute selbstverstandlich vorhanden ist Ein grosser Vorteil der kleinen Standard Bibliothek besteht jedoch darin dass die Bereitstellung einer standardkonformen C Implementation weit einfacher ist als bei anderen Sprachen und so die Portierung von C auf eine neue Plattform vergleichsweise einfach ist Der grosste Teil der C Standard Bibliothek hat sich als sehr vorausschauend entwickelt herausgestellt Dennoch gelten einige Teile heute als Fehler wurden aber aufgrund verbreiteter Nutzung aufgenommen Die Eingabefunktion gets beispielsweise ist die Quelle vieler Pufferuberlaufe und wurde deswegen auch aus der Bibliothek des neuesten C Standards C11 entfernt Die ISO C Standardbibliothek umfasst aktuell ISO C99 24 Header Dateien Da einige Header Dateien erst in neueren Revisionen dem C Standard hinzugefugt wurden werden sie von Compilern die einen alteren Sprachstandard implementieren nicht unterstutzt Entstehung BearbeitenDa C anders als andere traditionelle Sprachen wie Pascal oder Fortran uber keine eingebauten komplexen Funktionalitaten z B fur Ein und Ausgabeoperationen verfugt bildeten sich in der Phase vor der Standardisierung Zirkel von C Programmierern die ihre Ideen und Implementierungen fur immer wieder genutzte Funktionen untereinander austauschten Daraus entstanden im Laufe der Zeit umfangreiche Funktionsbibliotheken die spater mit als Grundlage fur die Normung der Sprache C dienten C wurde in den fruhen 1970er Jahren von Dennis Ritchie an den Bell Laboratories zur Programmierung des Betriebssystems Unix entwickelt und gewann in den folgenden Jahren zunehmend an Popularitat Viele Universitaten und Organisationen entwickelten fur ihre Projekte eigene Varianten der Sprache so dass es zwischen den verschiedenen Implementierungen schon bald Kompatibilitatsprobleme gab 1983 formierte das American National Standards Institute ANSI ein Komitee das ein genormtes C definieren sollte Im Dezember 1989 waren die Arbeiten am Sprachstandard ANSI X3 159 1989 Programming Language C C89 abgeschlossen der auch die C Standard Bibliothek umfasste Ein Jahr spater wurde der Standard von der ISO als internationale Norm ISO IEC 9899 1990 C90 ubernommen Es folgten weitere Revisionen siehe auch Varianten der Programmiersprache C Header Dateien BearbeitenVon den jeweiligen Versionen der Norm werden folgende Header Dateien definiert C89 C90assert h Assertionsctype h Tests auf bestimmte Zeichentypenerrno h Codes von Systemfehlernfloat h Angaben zu den Wertbereichen von Gleitkommazahlenlimits h Angaben zu Beschrankungen des verwendeten Systemslocale h Einstellungen des Gebietsschemas a href Math h html title Math h math h a mathematische Funktionensetjmp h erweiterte Sprungfunktionensignal h Signalbehandlungstdarg h Argumentbehandlung fur variadische Funktionenstddef h zusatzliche Typdefinitionenstdio h Ein und Ausgabestdlib h vermischte Standardfunktionen u a Speicherverwaltungstring h Zeichenkettenoperationentime h Datum und UhrzeitNeu in C95 auch NA1 iso646 h alternative Schreibweisen fur logische und bitweise Operatorenwchar h Unterstutzung fur Unicode Zeichenwctype h wie ctype h fur Unicode ZeichenNeu in C99 1 complex h Komplexe Zahlenfenv h Einstellungen fur das Rechnen mit Gleitkommazahleninttypes h Konvertierungs und Formatierungsfunktionen fur erweiterte Ganzzahltypenstdbool h Unterstutzung fur Boolesche Variablenstdint h plattformunabhangige Definition von Ganzzahltypentgmath h typgenerische Makros fur mathematische FunktionenNeu in C11stdalign h Makros fur die Speicherausrichtung von Objektenstdatomic h Typen und Makros fur atomare Operationen zwischen Threadsstdnoreturn h Definition des No Return Makrosthreads h Unterstutzung fur Threads Mutexes und Monitoreuchar h Unterstutzung fur UTF 16 und UTF 32 kodierte Unicode ZeichenFreistehende Implementierungen Bearbeiten Freistehende Implementierungen mussen nur mindestens die folgenden Header Dateien zur Verfugung stellen Header C89 C90 C95 C99float h Ja Ja Jaiso646 h Ja Jalimits h Ja Ja Jastdarg h Ja Ja Jastdbool h Jastddef h Ja Ja Jastdint h JaImplementierungen der C Standard Bibliothek BearbeitenDie glibc ist eine freie LGPL Implementierung der C Standard Bibliothek die im GNU Projekt mit dem gcc Compiler entwickelt wird Sie ist daher besonders im Unix Raum weit verbreitet Ebenfalls frei unter einer BSD Lizenz verfugbar sind die C Bibliothek Implementationen der BSD Betriebssysteme FreeBSD NetBSD und OpenBSD Diese stellen moderne Weiterentwicklungen der ursprunglich von der CSRG bereitgestellten C Bibliothek dar Programme fur Windows nutzen haufig die von der Microsoft Visual C Laufzeitumgebung bereitgestellte Implementierung msvcrt dll die keinen besonderen Namen tragt da sie nicht separat verfugbar ist Als Alternativen stehen unter anderem auch weniger umfangreiche Implementierungen zur Verfugung die besonders auf eingebetteten Systemen Verwendung finden z B eglibc und die speziell fur µClinux entwickelte uClibc oder diet libc Die Klibc ist eine freie GPL oder BSD Lizenz Minimalimplementierung der C Standard Bibliothek von Hans Peter Anvin die hauptsachlich wahrend des Startvorgangs vom Linux Kernel genutzt wird Fur die Programmierung von TI MSP430 Mikrocontrollern von Texas Instruments kann die msp430 libc verwendet werden Bionic ist eine freie BSD Lizenz Implementierung von Google fur das Betriebssystem Android Newlib ist eine zur Erstellung von Projekten im Bereich Eingebettete Systeme optimierte Implementierung der C Standard Bibliothek musl ist eine fur statisches Linken optimierte Implementierung der C Standard Bibliothek Literatur BearbeitenBritish Standards Institute Hrsg The C Standard Incorporating TC1 BS ISO IEC 9899 1999 John Wiley amp Sons 2003 ISBN 0 470 84573 2 P J Plauger The Standard C Library Prentice Hall 1992 ISBN 0 13 131509 9 Weblinks BearbeitenUbersicht uber die C Standard Bibliothek Abgerufen am 21 September 2010 C89 ISO IEC 9899 1999 C99 mit TC1 TC2 und TC3 PDF 3 6 MB Abgerufen am 12 September 2010 englisch nicht normatives Arbeitsdokument Rationale fur C99 Revision 5 10 PDF 877 kB Abgerufen am 12 September 2010 englisch C Library Abgerufen am 26 November 2012 englisch Einzelnachweise Bearbeiten Rationale for International Standard Programming Languages C PDF 877 kB Abgerufen am 12 September 2010 englisch Abgerufen von https de wikipedia org w index php title C Standard Bibliothek amp oldid 235799526