Standaard-C-bibliotheek

De Standaard-C-bibliotheek (libc) is een gestandaardiseerde bibliotheek voor de programmeertaal C. De bibliotheek bestaat uit een collectie headerbestanden en code voor een 200-tal courante functies, zoals voor het uitvoeren van input/output, manipuleren van strings of wiskundige bewerkingen. Deze bibliotheek is in elke C-omgeving aanwezig.

In tegenstelling tot verschillende andere programmeertalen, zoals vroeger Pascal of Fortran, kende C weinig ingebouwde functionaliteit. Uit verschillende implementaties ontstonden uiteindelijk na verloop van tijd de nu standaardfuncties. De naam en karakteristieken van elke bibliotheekfunctie worden bepaald in een headerbestand; de eigenlijk implementatie bevindt zich echter in een afzonderlijk bibliotheekbestand. Deze code wordt uiteindelijk meegelinkt in het programma. Veel compilers leveren een implementatie van de standaardbibliotheek mee, of kunnen gebruik maken van de standaardbibliotheek die op het platform aanwezig is.

ANSI-standaard bewerken

De ANSI-standaard-C-bibliotheek bevat 24 headerbestanden. In vergelijking met sommige andere talen, zoals Java, is deze standaardbibliotheek minimaal. Ze voorziet een aantal basisfuncties voor wiskundige bewerkingen, stringmanipulaties, typeconversies en invoer en uitvoer naar bestand en naar de console. De bibliotheek bevat geen containertypes, zoals de Standard Template Library in C++ die levert, geen GUI-routines of netwerkfunctionaliteiten.

assert.h Asserties
complex.h Complexe getallen
ctype.h Test op de waarde van karakters
errno.h Errorcodes
fenv.h Instelling voor floating point-bewerkingen
float.h Implementatiespecifieke waarden en limieten voor floating point-getallen
inttypes.h Conversie en formattering van integers
iso646.h Alternatieve notaties voor operatoren voor gebruik onder een ISO 646-tekenset
limits.h Implementatiespecifieke limieten voor gehele typen
locale.h Voor lokale instellingen (locale)
math.h Wiskundige functies
setjmp.h sprongfunctie
signal.h Signalen
stdarg.h Variabel aantal argumenten voor functies
stdbool.h Boolean-datatype
stddef.h Definitie van verscheidene types en macro's
stdint.h Verscheidene integertypes
stdio.h Invoer en uitvoer
stdlib.h Verscheidene standaardfuncties
string.h Stringbewerkingen
tgmath.h Typegenerische wiskundige functies
time.h Datum- en tijdbewerkingen
wchar.h Ondersteuning voor karakters in grotere tekensets
wctype.h Analoog als ctype.h, maar voor uitgebreide karakters

Implementaties bewerken

Samen met de compiler gcc werd door het GNU-project de vrije implementatie glibc ontwikkeld. Deze wordt vooral op Linux- en UNIX-systemen gebruikt. Er bestaan ook vrije implementaties onder BSD-licentie, gebruikt in systemen zoals OpenBSD, FreeBSD en NetBSD.

Op Microsoft Windows gebruikt Microsofts compiler een eigen implementatie van de bibliotheek in de Microsoft Visual C/C++ Runtime (mscvrt.dll).

Voor embedded systemen bestaan er kleine minimale implementaties, zoals µClibc (speciaal voor uClinux ontwikkeld) of dietlibc.

Andere talen bewerken

Sommige andere programmeertalen nemen functionaliteit van de standaard-C-bibliotheek over in hun eigen bibliotheek. Zo biedt de programmeertaal C++ de functionaliteit aan in de namespace std, door middel van headerbestanden met gelijkaardige namen als de C-headerbestanden. Ook talen als D of Python gebruiken de standaardbibliotheek van C.