Unix et le langage de programmation C ont été créés par les laboratoires AT&T et Bell (AT&T's Bell Laboratories) au début des années 1970. langage C primitif ne fournissait pas de fonctionnalités incorporées comme les opérations d'entrées/sorties (au contraire des langages traditionnels comme Pascal et Fortran). Avec le temps, les communautés d'utilisateurs de C ont partagé des idées et des implémentations de ce que nous appelons maintenant la bibliothèque standard de C pour fournir ces fonctionnalités. Beaucoup de ces idées ont été incorporées dans la définition normalisée du langage de programmation C.
Pendant la décennie 1970, C est devenu populaire. Beaucoup d'universités et d'organisations ont créé leurs propres variations de ce langage pour leurs propres projets. Dans les années 1980 des problèmes de compatibilité entre les différentes implémentations de C sont apparus.
En 1983 l'Institut national américain des standards (American National Standards Institute (ANSI)) a formé un comité pour établir une spécification normalisée de C, connue sous le nom de « C ANSI ». Ce travail culmina avec la création de la norme C89 en 1989. Une partie de la norme résultante était un ensemble de fonctions de bibliothèque appelé bibliothèque standard C ANSI (ANSI C standard library). Cette norme est devenue Norme internationale en 1990, et est aussi connue comme C ISO (ISO C).
Des révisions ultérieures de la norme C ISO ont ajouté de nouvelles fonctions et de nouveaux en-têtes à la bibliothèque. Le support de ces extensions varie selon les implémentations. Les en-têtes
,
, et
ont été ajoutés avec l'amendement normatif 1 (Normative Amendment 1), abrégé ci-dessous par Amd.1, qui constitue un ajout à la norme C ratifiée en 1995. Les en-têtes
,
,
,
,
et
ont été ajoutées avec le C99, une révision de la norme C publiée en 1999.
La bibliothèque standard C ISO consiste en 24 en-têtes qui peuvent être inclus dans un projet de programmeur avec une simple directive. Chaque en-tête contient des prototypes de fonctions, des définitions de types et de macros. Le contenu de ces en-têtes est décrit ci-dessous.
Le langage de programmation C++ reprend les fonctionnalités de la bibliothèque standard C ISO, mais il y fait plusieurs modifications, comme transformer les noms des en-têtes de
en
(cependant, les noms dans le style C sont toujours disponibles, bien que périmés), et placer tous les identificateurs dans l'espace de noms (namespace) std
.
assert
, utilisée pour aider à détecter des incohérences de données et d'autres types de bogues dans les versions de débogage d'un programme.
errno
.
goto
non locales (sortes d'exceptions).
NULL
.
printf
.