Anda di halaman 1dari 5

Biblioteca estndar de C

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.

Calidad del diseo


Est demostrado que la mayor parte de la biblioteca estndar de C ha sido bien diseada, aunque, se ha comprobado que algunas partes tambin son fuente de errores; funciones para entrada de cadenas como gets() o scanf(), producen desbordamientos de buffer, y muchas guas de programacin recomiendan evitar su uso. La funcin strtok() presenta otra singularidad, est diseada para ser utilizada como un analizador lxico rudimentario, pero resulta difcil de utilizar adems de ser muy frgil.

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.

Archivos de cabeceras de la biblioteca ANSI C


<assert.h> Contiene la macro assert (asercin), utilizada para detectar errores lgicos y otros tipos de fallos en la depuracin de un programa.

<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).

<errno.h> <fenv.h> <float.h>

<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>

<math.h> <setjmp.h> <signal.h> <stdarg.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).

<string.h> <tgmath.h> <time.h> <wchar.h>

<wctype.h>

La biblioteca estndar de C en C++


El lenguaje de programacin C++ incluye la funcionalidad de la biblioteca estndar ANSI C, pero hace algunas modificaciones como cambiar los nombres de los ficheros de cabecera, de <xxx.h> a <cxxx> (aunque los nombres en estilo C, aun siendo obsoletos, siguen estando disponibles), y ubican todos los identificadores dentro del namespace std.

Bibliotecas de apoyo comunes


Aunque no est estandarizado, los programas en C pueden depender de una biblioteca de rutinas en tiempo de ejecucin que contengan cdigo que el compilador utiliza en tiempo de ejecucin. El cdigo que inicializa un proceso por el sistema operativo (por ejemplo, antes de llamar a main()) est implementado en la biblioteca Run-Time (tiempo de ejecucin) de C proporcionada por el distribuidor del compilador. El cdigo de la biblioteca Run-Time podra ayudar con otras caractersticas de la implementacin, como la manipulacin de excepciones no capturadas o implementando cdigo para operaciones en coma flotante. La biblioteca estndar de C slo documenta que las rutinas mencionadas en el presente artculo estn disponibles, as como su comportamiento. Ya que la implementacin del compilador podra depender de la implementacin de estas funciones para estar disponible, es probable que la especificacin de las rutinas proporcionada por el fabricante est empaquetada con la biblioteca estndar de C en el mismo mdulo, ya que probablemente, ambas sern necesarias para cualquier programa construido con este compilador. Aunque a menudo se confunda con la biblioteca estndar de C, debido a este empaquetamiento, la biblioteca Run-Time de C no es una parte normalizada del lenguaje, sino que es una especificacin

Funciones incorporadas del compilador


Algunos compiladores (por ejemplo GCC[1]) proporcionan versiones incorporadas de muchas de las funciones de la biblioteca estndar de C; es decir, la implementacin de las funciones est escrita dentro del fichero objeto compilado, y el programa llama a la versin incorporada en vez de, a la funcin del fichero objeto compartido en la biblioteca de C. Esto reduce el sobrecoste de una llamada a funcin, especialmente si las llamadas a funcin son remplazadas con variantes inline, y permiten otras formas de optimizacin (como cuando el compilados sabe las caractersticas de control de flujo de las variantes incorporadas), pero puede causar confusin al depurar (por ejemplo, las versiones incorporadas no pueden ser remplazadas por las variantes instrumentadas).

Biblioteca estndar de C

Biblioteca estndar de POSIX


POSIX (y SUS) especifica una serie de rutinas que deben estar disponibles ms all de la propia biblioteca estndar de C. A menudo stas se implementan conjuntamente con la biblioteca de C estndar, con distintos niveles de proximidad. Por ejemplo, glibc implementa funciones como fork() dentro de libc.so, pero antes NPTL se fusion con glibc constituyendo una biblioteca con su propia marca de linkado. A menudo, esta funcionalidad de POSIX se considera una parte de la biblioteca; la propia biblioteca de C puede ser identificada como la biblioteca ANSI C o ISO 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)

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Biblioteca estndar de C Fuente: http://es.wikipedia.org/w/index.php?oldid=67551677 Contribuyentes: Alejandrocaro35, Argentumm, BlackSalamander, Edgardo C, GermanX, Gh05t2k, Gtz, Jesuja, Jorgelrm, Man5veces, ONDIUX, Patrickpedia, Platonides, Sebrev, Shooke, 15 ediciones annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 //creativecommons.org/licenses/by-sa/3.0/

Anda mungkin juga menyukai