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

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.hAsserties
complex.hComplexe getallen
ctype.hTest op de waarde van karakters
errno.hErrorcodes
fenv.hInstelling voor floating point-bewerkingen
float.hImplementatiespecifieke waarden en limieten voor floating point-getallen
inttypes.hConversie en formattering van integers
iso646.hAlternatieve notaties voor operatoren voor gebruik onder een ISO 646-tekenset
limits.hImplementatiespecifieke limieten voor gehele typen
locale.hVoor lokale instellingen (locale)
math.hWiskundige functies
setjmp.hsprongfunctie
signal.hSignalen
stdarg.hVariabel aantal argumenten voor functies
stdbool.hBoolean-datatype
stddef.hDefinitie van verscheidene types en macro's
stdint.hVerscheidene integertypes
stdio.hInvoer en uitvoer
stdlib.hVerscheidene standaardfuncties
string.hStringbewerkingen
tgmath.hTypegenerische wiskundige functies
time.hDatum- en tijdbewerkingen
wchar.hOndersteuning voor karakters in grotere tekensets
wctype.hAnaloog als ctype.h, maar voor uitgebreide karakters

Implementaties

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

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.

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.