Bibliotecas para C

Video desta aula

https://www.flaticon.com/authors/freepikExiste uma grande quantidade de bibliotecas disponíveis para a linguagem C, algumas delas mais genéricas e muitas outras construídas para áreas específicas, como o processamento de imagens, serviços de rede, etc.

Esta página visa apresentar algumas bibliotecas para C que podem ser úteis para o desenvolvimento de programas mais complexos.

Uso geral

LibC

A biblioteca padrão C (C Standard Library) ou simplesmente LibC contém a maioria das funções básicas da linguagem C como printf, scanf, fopen e muitas outras.

A LibC oferece funções para:

Uma extensão da biblioteca padrão C específica para sistemas operacionais no padrão POSIX for definido como POSIX C Library. Além das funções da LibC padrão, ela também implementa operações específicas de sistema operacional, como:

Como o próprio nome diz, a biblioteca padrão está disponível por default na grande maioria dos sistemas operacionais que suportam a linguagem C. Sistemas UNIX como o Linux e o FreeBSD usam geralmente a implementação da LibC construída pelo projeto GNU, chamada GNU C Library, ou simplesmente GLibC.

A GLibC implementa as funcionalidades da LibC padrão e da extensão POSIX, mas traz também um grande conjunto de extensões que não estão disponíveis em outras implementações. Por isso, ao desenvolver programas que devem funcionar em mais de uma plataforma, deve-se verificar se as funções utilizadas são suportadas em todas elas.

Estruturas de dados

GLib

A GLib é uma biblioteca de uso geral com um grande conjunto de funcionalidades para a construção de estruturas de dados (listas, árvores, tabelas hash, etc.). A biblioteca GLib é muito usada para a construção de aplicações em Linux, sobretudo no ambiente gráfico Gnome. Todavia, pode ser compilada e usada em outras plataformas, pois não tem relação com a interface gráfica.

Páginas com mais informações sobre a GLib:

SGLib

Outra opção para a construção de estrutura de dados usuais, como listas e árvores, é a biblioteca SGLib - A Simple Generic Library for C.

Interface gráfica

SDL

A biblioteca SDL (Simple DirectMedia Layer) oferece acesso à interface gráfica do computador. Estas funcionalidades são oferecidas:

Esta biblioteca está disponível para C e C++ em várias plataformas, como Linux, Windows, Android e iOS. Mais informações sobre SDL podem ser obtidas em:

Allegro

A biblioteca Allegro permite a manipulação de gráficos simples e áudio, sendo bem adaptada para a construção de jogos 2D. É uma biblioteca mais simples (mais limitada) que SDL, mas boa para projetos menores.

Algumas de suas características:

Interface de usuário

NCurses

A biblioteca NCurses permite a manipulação do terminal de texto, oferecendo as seguintes funcionalidades:

Estas páginas oferecem informações adicionais sobre a biblioteca NCurses:

GTK

A biblioteca GIMP ToolKit foi desenvolvida para o ambiente de desktop Gnome (Linux). Ela permite a construção de janelas gráficas com elementos de interface do usuário (janelas, menus, botões, etc).

Armazenamento

GDBM

A biblioteca GDBM (GNU dbm) permite criar bases de dados simples em disco, estruturadas na forma de pares chave/valor. São oferecidas funções para criar/destruir bases e criar/remover/buscar registros em uma base.

A estrutura interna da base permite operações de busca/inserção muito rápidas.

SQLite

Quando um programa precisa armazenar e manipular um grande volume de dados estruturados, pode fazer uso da biblioteca SQLite. Esta biblioteca constrói a abstração de uma base de dados relacional no padrão SQL em um arquivo em disco. A maioria das operações típicas de DBMS relacionais, como criação de tabelas, buscas, fusões, etc são suportadas pela biblioteca.

SQLite é a biblioteca usada para armazenamento de dados do usuário no ambiente Android e nos navegadores web Firefox e Chrome.

Ciência

GSL

A biblioteca GSL (GNU Scientific Library) oferece mais de 1000 funções para operações matemáticas de alto desempenho, como:

OpenCV

A biblioteca OpenCV (Open Computer Vision) foi desenvolvida pela Intel para o processamento de imagens e vídeos, trazendo uma grande quantidade de funções com desempenho otimizado para o tratamento de fotografias, vídeos capturados por câmeras, etc.