Biblioteca padrão do C
A biblioteca padrão do C (também conhecida como libc) é uma biblioteca de rotinas padronizada da linguagem de programação C que contém operações comuns como tratamento de entrada/saída e cadeia de caracteres. Diferente de outras linguagens como COBOL, Fortran e PL/I, C não inclui palavras-chave nativas para tais tarefas, de forma que praticamente todos os programas C fazem uso da biblioteca padrão. EstruturaO nome e as características de cada função estão em um arquivo chamado cabeçalho, mas a implementação das funções está em um arquivo separado. A nomenclatura e o escopo dos cabeçalhos é comum a diferentes implementações, mas a organização das bibliotecas diverge. Cada compilador C possui sua implementação da biblioteca padrão C. Como os compiladores C geralmente oferecem funcionalidades adicionais que não são especificadas pelo ANSI C, a implementação da biblioteca padrão de um compilador é muito provavelmente incompatível com a de outro. QualidadeA maior parte da biblioteca padrão se mostrou ter sido bem desenvolvida. Entretanto, algumas partes são atualmente consideradas erros de modelagem. Por exemplo, as funções de entrada de texto HistóriaAntes de ser padronizada, a linguagem C não fornecia funcionalidades nativas como operações de entrada e saída, diferente de outras linguagens tradicionais como Cobol e Fortran. Com o tempo, a comunidade de usuários compartilhou idéias e implementações do que é atualmente chamado biblioteca padrão. Tanto o Unix quanto a linguagem C foram criados no Bell Labs entre o final da década de 1960 e o início da década de 1970. Durante a década de 1970 a linguagem C tornou-se cada vez mais popular, e diferentes universidades e organizações estavam criando suas próprias variações da linguagem para seus projetos. A partir da década de 1980, os problemas de compatibilidade por conta dessas diferentes versões se tornou cada vez mais aparente. Em 1983 a ANSI formou um comitê para estabelecer uma especificação formal da linguagem conhecida como ANSI C. Esse trabalho culminou na criação padrão C89 em 1989. Parte do padrão que havia surgido era um conjunto de bibliotecas chamado biblioteca padrão do ANSI C. Revisões posteriores do padrão da linguagem C adicionaram diversos novos cabeçalhos e funcionalidades à biblioteca padrão. Entretanto, o suporte para essas novas extensões variam entre implementações. Os cabeçalhos <iso646.h>, <wchar.h> e <wctype.h> foram adicionados com o Normative Addendum 1 (NA1), uma ratificação de 1995. Já os cabeçalhos <complex.h>, <fenv.h>, <inttypes.h>, <stdbool.h>, <stdint.h> e <tgmath.h> foram adicionados com o C99, uma revisão do padrão publicada em 1999. Padrão ANSIA biblioteca padrão ANSI C consiste de 24 cabeçalhos, cada um contendo uma ou mais declarações de funções, tipos de dados e macros. Em comparação com linguagens como Java, esta biblioteca padrão é minúscula. Ela fornece um conjunto básico de operações matemáticas, manipulação de cadeias de caracteres, conversão de tipos de dados e entrada e saída de arquivo e da tela. Não contém um conjunto padrão de containers como a biblioteca padrão do C++ (parte chamada Standard Template Library), nem suporta interface gráfica do utilizador. A vantagem desse sistema minimalista é que fornecer um ambiente funcional de ANSI C é muito mais simples que em outras linguagens, e, conseqüentemente, a portabilidade de C entre diferentes plataformas é uma tarefa relativamente simples. Várias outras bibliotecas foram desenvolvidas para suprir as necessidades computacionais que a biblioteca padrão não cobre. Por exemplo, o projeto GNOME desenvolveu o toolkit GTK+ e a GLib, uma biblioteca de containers. Cabeçalhos do ANSI C
Biblioteca padrão do C em outras linguagensAlgumas linguagens incluem a funcionalidade da biblioteca padrão do C em suas próprias bibliotecas. A biblioteca pode ser adaptada para se adequar melhor à estrutura da linguagem destino, mas a semântica permanece a mesma. Por exemplo, C++ inclui a funcionalidade da biblioteca padrão ANSI C no espaço de nomes Implementações
. ReferênciasVer tambémLigações externas
|