„C-Standard-Bibliothek“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
Inhalt gelöscht Inhalt hinzugefügt
Girus (Diskussion | Beiträge) lf Markierung: 2017-Quelltext-Bearbeitung |
Aka (Diskussion | Beiträge) K https, Links optimiert | viele Tippfehler in anderen Artikeln – Helfer gesucht |
||
(5 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 1:
Die '''C-Standard-Bibliothek''' ({{enS|C standard library}}, auch bekannt als ''libc'') ist die [[Standardbibliothek]] der [[Programmiersprache]] [[C (Programmiersprache)|C]].
In jeder standardkonformen betriebssystemgestützten Implementierung ''(hosted environment)'' von C muss die C-Standard-Bibliothek in vollem Umfang vorhanden sein. Hingegen müssen freistehende Umgebungen ''(freestanding environment)'', wie man sie beispielsweise im [[Eingebettetes System|Embedded]]-Bereich häufig antrifft, nur eine festgelegte Untermenge der Standardbibliothek anbieten, um standardkonform zu sein.
== Aufbau ==
[[Funktionsprototyp]]en, [[Makro]]s, [[Datentyp|Typdeklarationen]] und weitere Informationen sind in sogenannten [[Header-Datei
== Umfang ==
Zeile 10:
Die C-Standard-Bibliothek enthält etwa 200 häufig benötigte [[Funktion (Programmierung)|Funktionen]] für [[Eingabe und Ausgabe|Ein- und Ausgabe]], [[Funktion (Mathematik)|mathematische Operationen]], Verarbeitung von [[Zeichenkette]]n, [[Speicherverwaltung]] und andere Bereiche. C verfügt, anders als traditionelle Sprachen (vor allem [[Pascal (Programmiersprache)|Pascal]] und [[Fortran]]), über keine eingebauten komplexen Funktionalitäten für z. B. Ein- und Ausgabeoperationen. Diese müssen daher von [[Programmbibliothek|Funktionsbibliotheken]] zur Verfügung gestellt werden.
Im Vergleich zu den Bibliotheken anderer Sprachen, namentlich zum Beispiel [[Java (Programmiersprache)|Java]], ist die C-Standard-Bibliothek minimalistisch. Sie stellt nur einen grundlegenden Satz an mathematischen Funktionen, Funktionen zur [[Zeichenkette]]nmanipulation, Typkonvertierung sowie datei- und konsolenbasierter Ein- und Ausgabe zur Verfügung. Sie stellt
Der größte 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 <code>gets()</code> beispielsweise ist die Quelle vieler [[Pufferüberlauf|Pufferüberläufe]] und wurde deswegen auch aus der Bibliothek des neuesten C-Standards C11 entfernt.
Zeile 66:
| <code>wctype.h</code> || wie <code>ctype.h</code>, für Unicode-Zeichen
|- class="hintergrundfarbe5"
!colspan="2" style="text-align:left"| Neu in C99<ref>{{Internetquelle | url=
|-
| <code>complex.h</code> || [[Komplexe Zahl]]en
Zeile 118:
* Die [[GNU-C-Bibliothek|glibc]] ist eine freie ([[GNU Lesser General Public License|LGPL]]) Implementierung der C-Standard-Bibliothek, die im [[GNU-Projekt]] mit dem [[GNU Compiler Collection|gcc]]-Compiler entwickelt wird. Sie ist daher besonders im [[Unix]]-Raum weit verbreitet.
* Ebenfalls frei (unter einer [[BSD-Lizenz]]) verfügbar sind die C-Bibliothek-Implementationen der [[Berkeley Software Distribution|BSD]]-Betriebssysteme [[FreeBSD]], [[NetBSD]] und [[OpenBSD]]. Diese stellen moderne Weiterentwicklungen der ursprünglich von der [[Computer Systems Research Group|CSRG]] bereitgestellten C-Bibliothek dar.
* Programme für [[Microsoft Windows|Windows]] nutzen häufig die von der „[[Microsoft Visual C++]]“-[[Laufzeitumgebung]] bereitgestellte Implementierung (<
* Als Alternativen stehen unter anderem auch weniger umfangreiche Implementierungen zur Verfügung, die besonders auf [[Eingebettetes System|eingebetteten Systemen]] Verwendung finden, z. B. [[Glibc#EGLIBC Fork|eglibc]] und die speziell für [[µClinux]] entwickelte [[uClibc]] oder [[diet libc]].
* Die [[Klibc]] ist eine freie ([[GNU General Public License|GPL]] oder [[BSD-Lizenz]]) Minimalimplementierung der C-Standard-Bibliothek von [[Hans Peter Anvin]], die hauptsächlich während des [[Booten|Startvorgangs]] vom [[Linux (Kernel)|Linux-Kernel]] genutzt wird.
* Für die Programmierung von „[[TI MSP430]]“-Mikrocontrollern von Texas Instruments kann die [[msp430-libc]] verwendet werden.
* [[Bionic (Software)|Bionic]] ist eine freie ([[BSD-Lizenz]]) Implementierung von [[Google LLC|Google]] für das [[Betriebssystem]] [[Android (Betriebssystem)|Android]].
* [[Newlib]] ist eine zur Erstellung von Projekten im Bereich [[Eingebettete Systeme]] optimierte Implementierung der C-Standard-Bibliothek.
* [[musl]] ist eine für [[Linker (Computerprogramm)#Statisches Linken|statisches Linken]] optimierte Implementierung der C-Standard-Bibliothek.
Zeile 136:
== Weblinks ==
* {{Internetquelle | url=
* {{Internetquelle | url=
* {{Internetquelle | url=
* {{Internetquelle | url=https://code-reference.com/c | titel=C Library | zugriff=2012-11-26| sprache=en}}
|