Biblioteca estndar de C
La biblioteca estndar de C (tambin conocida como libc) es una recopilacin de ficheros cabecera y bibliotecas con rutinas, estandarizadas por un comit de la Organizacin Internacional para la Estandarizacin (ISO), que implementan operaciones comunes, tales como las de entrada y salida o el manejo de cadenas. A diferencia de otros lenguajes como COBOL, Fortran, o PL/1, C no incluye palabras clave para estas tareas, por lo que prcticamente todo programa implementado en C se basa en la biblioteca estndar para funcionar.
Diseo
El nombre y las caractersticas de cada funcin, el prototipo, as como la definicin de algunos tipos de datos y macros, se encuentran en un fichero denominado archivo de cabecera (con extensin ".h"), pero la implementacin real de las funciones estn separadas en un archivo de la biblioteca. La denominacin y el mbito de las cabeceras se han convertido en comunes, pero la organizacin de las bibliotecas sigue siendo diversa, ya que stas suelen distribuirse con cada compilador. Dado que los compiladores de C, a menudo, ofrecen funcionalidades adicionales que no estn especificados en el ANSI C, la biblioteca de un compilador no siempre es compatible con el estndar ni con las bibliotecas de otros compiladores.
Historia
El lenguaje de programacin C, antes de normalizarse, no dispona de funcionalidades tales como operaciones de entrada/salida (a diferencia de lenguajes tradicionales como COBOL y FORTRAN). Con el tiempo, las comunidades de usuarios de C fueron compartiendo ideas, as como las implementaciones de lo que ahora se denomina las bibliotecas estndar de C para proporcionar esas funcionalidades. Muchas de estas ideas se incorporaron finalmente en la definicin estandarizada del lenguaje. Tanto Unix como C fueron creados en los Laboratorios Bell de AT&T a finales de la dcada de los 60 y principios de los 70. Fue en los 70 cuando el lenguaje de programacin C acrecent su popularidad. Muchas organizaciones y universidades crearon sus propias versiones del lenguaje para sus propios proyectos. A comienzos de los 80 se evidenciaron los problemas de compatibilidad derivados de la existencia de las mltiples implementaciones del lenguaje. en 1983 el Instituto Nacional Estadounidense de Estndares (ANSI, de las siglas en ingls de American National Standards Institute) creo un comit para establecer una especificacin estndar del lenguaje conocida como ANSI C. Este trabajo culmin con la creacin del llamado estndar C89 en 1989. Una parte del estndar resultante fue un conjunto de bibliotecas de software denominado 'bibliotecas estndar de ANSI C. Posteriores versiones del estndar C han aadido algunos nuevos ficheros cabecera a la biblioteca: Las cabeceras <iso646.h>, <wchar.h> y <wctype.h> fueron aadidas con Normativa Addendum 1 (abreviado NA1), y fueron ratificadas por el estndar en 1995. Las cabeceras <complex.h>, <fenv.h>, <inttypes.h>, <stdbool.h>, <stdint.h> y <tgmath.h>. fueron aadidas en 1999 con la revisin C99 del estndar. El soporte de estas nuevas extensiones vara segn implementaciones.
Biblioteca estndar de C
El estndar ANSI
La biblioteca estndar de ANSI C consta de 24 ficheros cabecera que pueden ser incluidos en un proyecto de programacin con una simple directiva. Cada cabecera contiene la declaracin de una o ms funciones, tipos de datos y macros. En comparacin con otros lenguajes de programacin (como por ejemplo Java) la biblioteca estndar es muy pequea, sta proporciona un conjunto bsico de funciones matemticas, de tratamiento de cadenas, conversiones de tipo y entrada/salida por consola o por ficheros. No se incluyen, ni un conjunto de tipos de datos contenedores bsicos (listas, pilas, colas, ...), ni herramientas para crear una interfaz grfica de usuario (GUI), ni operaciones para trabajar en red, ni otras funcionalidades que lenguajes como C++ o Java incorporan de manera estndar. La principal ventaja del reducido tamao de la biblioteca estndar de C es que construir un entorno de trabajo en ANSI C es muy fcil y, en consecuencia, portar un programa en ANSI C de una plataforma a otra es relativamente sencillo. Se han desarrollado muchas otras bibliotecas para proporcionar una funcionalidad equivalente a la de otros lenguajes de programacin. Por ejemplo, el proyecto de desarrollo del entorno de escritorio de GNOME cre las bibliotecas GTK+ y GLib con funcionalidades para desarrollar y trabajar con interfaces grficas de usuario. La variedad de bibliotecas disponibles ha hecho que, a lo largo de la historia, haya quedado demostrada la superioridad de algunas de estas herramientas. El gran inconveniente es que a menudo no funcionan especialmente bien en conjunto, normalmente son los propios programadores familiarizados con las diferentes bibliotecas quienes consiguen sacarles el mximo partido, aunque diferentes partes de ellas puedan estar disponibles en cualquier plataforma.
<complex.h> Conjunto de funciones para manipular nmeros complejos (nuevo en C99). <ctype.h> Contiene funciones para clasificar caracteres segn sus tipos o para convertir entre maysculas y minsculas independientemente del conjunto de caracteres (tpicamente ASCII o alguna de sus extensiones). Para analizar los cdigos de error devueltos por las funciones de biblioteca. Para controlar entornos en coma flotante (nuevo en C99). Contiene la definicin de constantes que especifican ciertas propiedades de la biblioteca de coma flotante, como la diferencia mnima entre dos nmeros en coma flotante (_EPSOLON), el nmero mximo de dgitos de precisin (_DIG), o el rango de valores que se pueden representar (_MIN, _MAX).
<inttypes.h> Para operaciones de conversin con precisin entre tipos enteros (nuevo en C99). <iso646.h> <limits.h> Para utilizar los conjuntos de caracteres ISO 646 (nuevo en NA1). Contiene la definicin de constantes que especifican ciertas propiedades de los tipos enteros, como rango de valores que se pueden representar (_MIN, _MAX). Para la funcin setlocale() y las constantes relacionadas. Se utiliza para seleccionar el entorno local apropiado (configuracin regional). Contiene las funciones matemticas comunes. Declara las macros setjmp y longjmp para proporcionar saltos de flujo de control de programa no locales. Para controlar algunas situaciones excepcionales como la divisin por cero. posibilita el acceso a una cantidad variable de argumentos pasados a una funcin.
<locale.h>
<stdbool.h> Para el tipo booleano (nuevo en C99). <stdint.h> <stddef.h> <stdio.h> Para definir varios tipos enteros (nuevo en C99). Para definir varios tipos de macros de utilidad. Proporciona el ncleo de las capacidades de entrada/salida del lenguaje C (incluye la venerable funcin printf).
Biblioteca estndar de C
<stdlib.h>
Para realizar ciertas operaciones como conversin de tipos, generacin de nmeros pseudo-aleatorios, gestin de memoria dinmica, control de procesos, funciones de entorno, de sealizacin (??), de ordenacin y bsqueda. Para manipulacin de cadenas de caracteres. Contiene funcionalidades matemticas de tipo genrico (type-generic) (nuevo en C99). Para tratamiento y conversin entre formatos de fecha y hora. Para manipular flujos de datos anchos y varias clases de cadenas de caracteres anchos (2 o ms bytes por carcter), necesario para soportar caracteres de diferentes idiomas (nuevo en NA1). Para clasificar caracteres anchos (nuevo en NA1).
<wctype.h>
Biblioteca estndar de C
Referencias
[1] Other built-in functions provided by GCC (http:/ / gcc. gnu. org/ onlinedocs/ gcc-4. 1. 1/ gcc/ Other-Builtins. html#Other-Builtins), GCC Manual
Enlaces externos
La biblioteca estndar de C (http://www.infosys.utas.edu.au/info/documentation/C/CStdLib.html): Descripcin detallada de los ficheros cabecera (en ingls) La gua de referencia de la biblioteca de C (http://www.acm.uiuc.edu/webmonkeys/book/c_guide/index. html) (en ingls) Microsoft: Las bibliotecas Run-Time de C (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ vclib/html/_crt_c_run.2d.time_libraries.asp) en MSDN (en ingls)
Licencia
Creative Commons Attribution-Share Alike 3.0 //creativecommons.org/licenses/by-sa/3.0/