Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions Standard C Library - Wikipedia

Standard C Library

aus Wikipedia, der freien Enzyklopädie

Die Standard C Library ist eine genormte Bibliothek für die Programmiersprache C, die etwa 200 Funktionen enthält und in jedem hosted environment von C zu implementieren ist. Sie enthält häufig benötigte Funktionen für Ein- und Ausgabe, mathematische Funktionen, Verarbeitung von Zeichenketten, Speicherverwaltung und andere Bereiche.

Bevor C genormt wurde, bot die Sprache, anders als traditionelle Sprachen (vor allem Pascal und Fortran), keine eingebauten Funktionalitäten, wie z. B. für E/A-Operationen. Im Laufe der Zeit bildeten sich Zirkel von C-Programmierern, die ihre Ideen und Implementierungen für immer wieder genutzte Funktionen austauschten. Daraus bildeten sich ausgewachsene Funktionsbibliotheken, die später als Grundlage für die Normung der Sprache C dienten.

Der Name und die Parameter jeder Funktion stehen in einem Header, den der Programmierer in den Quelltext seines Programms einbindet, um dem Compiler mitzuteilen, wie diese Funktionen zu verwenden sind. (Seit der Standardisierung von C muss es weder Header noch separaten Präprozessor geben; z. B. muss der „magische“ Befehl #include <stdio.h> in einem „hosted environment“ die stdio-Funktionalität ermöglichen, egal ob es überhaupt eine Datei stdio.h gibt oder nicht.) Die tatsächliche Implementierung der Funktionen ist meist in eine Programmbibliothek ausgelagert (z. B. libc.so.6 unter Linux, msvcrt.dll unter Windows). Namensgebung und Gültigkeitsbereich der Header sind heute genormt, die Organisation der Bibliotheken variiert jedoch je nach Anbieter. Die Standard C Library wird meist vom Compilerhersteller implementiert, es gibt jedoch auch „nackte“ Compiler, wie etwa gcc, der die auf dem System vorhandene C-Library benutzt. Compiler und System-Standardbibliothek zusammen bilden hier das hosted environment.

Im Vergleich zu den Bibliotheken anderer Sprachen (namentlich Java) ist die Standard C Library minimalistisch. Die Bibliothek stellt einen grundlegenden Satz an mathematischen Funktionen, Funktionen zur Zeichenkettenmanipulation, Typ-Konvertierung sowie Datei- und konsolenbasierter Ein- und Ausgabe zur Verfügung. Sie stellt keine genormten Container-Datentypen zur Verfügung, wie es die C++-Standardbibliothek tut, geschweige denn komplette GUI-Toolkits, Netz-Werkzeuge und andere Funktionalität, wie sie Java standardmäßig bietet. Hauptvorteil der kleinen Standard-Bibliothek ist die Tatsache, dass die Bereitstellung einer funktionierenden ANSI-C-Umgebung weit einfacher ist als sie es für andere Sprachen ist, und daher die Portierung von C auf eine neue Plattform relativ einfach ist.

Der größte Teil der Standard C Library hat sich als sehr vorausschauend entwickelt herausgestellt. Einige Teile gelten heute als Fehler, wurden aber aufgrund verbreiteter Nutzung aufgenommen. Die String-Eingabefunktionen gets() und scanf() sind die Quelle vieler Pufferüberläufe, und die meisten Bücher über C raten von deren Verwendung ab.

Inhaltsverzeichnis

[Bearbeiten] Geschichte

Sowohl Unix als auch C wurden in den späten 1960er und frühen 1970er Jahren an den Bell Labs entwickelt. Während der 1970er wurde C zunehmend populärer. Viele Universitäten und Organisationen erfanden ihre eigenen Varianten der Sprache für ihre eigenen Projekte. Zwischen den verschiedenen C-Implementierungen gab es schon bald Kompatibilitätsprobleme. 1983 formierte das American National Standards Institute (ANSI) ein Komitee, das ein genormtes C definieren sollte, das heute als ANSI C bekannt ist. Ein Teil der Norm war ein Satz von Programmbibliotheken mit dem Namen ANSI C Standard Library.

Die ANSI-C-Standardbibliothek besteht aus 18 Header-Dateien, die vom Programmierer durch eine einzige Anweisung eingebunden werden können. Jede Header-Datei enthält eine oder mehrere Funktionen, Prototypen, Datentypdefinitionen und Makros.

Spätere Revisionen der C-Norm haben einige neue Definitionen zur Bibliothek hinzugefügt, namentlich die Datei <stdbool.h>, die einen booleschen Typ zur Verfügung stellt, sowie Funktionen zum Umgang mit Unicode in <wchar.h> und <wctype.h>. Die tatsächliche Unterstützung dieser Erweiterungen variiert zwischen den Implementierungen.

[Bearbeiten] Header

assert.h Assertions
complex.h Komplexe Zahlen
ctype.h Tests auf bestimmte Zeichentypen
errno.h Codes von Systemfehlern
fenv.h Einstellungen für das Rechnen mit Gleitkommazahlen
float.h Angaben zu den Wertbereichen von Gleitkommazahlen
inttypes.h Konvertierungs- und Formatierungsfunktionen für Integers
iso646.h Alternative Schreibweisen für Operatoren
limits.h Angaben zu Beschränkungen des verwendeten Systems
locale.h Einstellungen des Gebietsschemas (Locale)
math.h Mathematische Funktionen
setjmp.h erweiterte Sprungfunktionen
signal.h Signale
stdarg.h Variable Argument-Listen für Funktionen
stdbool.h Boolean-Typ
stddef.h einige Typdefinitionen
stdint.h maschinenabhängige Definition von Integer-Typen
stdio.h Ein- und Ausgabe
stdlib.h Vermischte Standardfunktionen
string.h Zeichenketten
tgmath.h Typ-Generische Makros
time.h Datum und Uhrzeit
wchar.h Unicode-Zeichen
wctype.h wie ctype.h, für Unicode-Zeichen

[Bearbeiten] Implementierungen der Standard C Library

Die Glibc ist eine freie Implementierung der Standard C Library, die im GNU-Projekt mit dem gcc-Compiler entwickelt wird. Sie hat daher besonders im Unix-Raum weite Verbreitung.

Ebenso frei verfügbar (unter einer BSD-Lizenz) sind die C Library Implementationen der BSD Betriebssysteme FreeBSD, NetBSD und OpenBSD. Diese stellen moderne Weiterentwicklungen der ursprünglich von der CSRG bereitgestellten C Library dar.

Programme für Microsoft Windows nutzen häufig die von der „Microsoft-Visual C++-Laufzeitumgebung“ („msvcrt.dll“) bereitgestellte SCL-Implementierung, die keinen besonderen Namen trägt, da sie nicht separat verfügbar ist.

Als Alternativen stehen unter anderem auch weniger umfangreiche Implementierungen zur Verfügung, die besonders auf Embedded Systems ihren Einsatz finden, z. B. uClibc (speziell für uClinux für Mikrocontroller entwickelt) oder dietlibc.

[Bearbeiten] Weblinks

Andere Sprachen
Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu