Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
c:bibliotecas [2023/08/01 18:12] – criada maziero | c:bibliotecas [2023/08/01 20:11] (atual) – edição externa 127.0.0.1 | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Bibliotecas para C ====== | ||
+ | |||
+ | {{ progc_bibliotecas.mkv |Video desta aula}} | ||
+ | |||
+ | {{ books.png|https:// | ||
+ | |||
+ | 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 ([[https:// | ||
+ | |||
+ | A LibC oferece funções para: | ||
+ | |||
+ | * interface com o sistema operacional | ||
+ | * alocação de memória ('' | ||
+ | * acesso a arquivos ('' | ||
+ | * acesso a //streams// ('' | ||
+ | * manipulação de caracteres e strings (normais ou multi-bytes) | ||
+ | * ordenação e busca ('' | ||
+ | * operações matemáticas (exponenciação, | ||
+ | * conversões numéricas | ||
+ | * geração de números aleatórios | ||
+ | * operações com números complexos | ||
+ | * manipulação de datas e horas | ||
+ | * ... | ||
+ | |||
+ | Uma extensão da biblioteca padrão C específica para sistemas operacionais no padrão POSIX for definido como [[https:// | ||
+ | |||
+ | * operações de rede | ||
+ | * tratamento de sinais e eventos do SO | ||
+ | * operações de entrada/ | ||
+ | * filas de mensagens | ||
+ | * semáforos | ||
+ | * //threads// | ||
+ | * ... | ||
+ | |||
+ | 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 [[https:// | ||
+ | |||
+ | 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 [[https:// | ||
+ | |||
+ | Páginas com mais informações sobre a GLib: | ||
+ | |||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | |||
+ | === SGLib === | ||
+ | |||
+ | Outra opção para a construção de estrutura de dados usuais, como listas e árvores, é a biblioteca [[http:// | ||
+ | |||
+ | ===== Interface gráfica ===== | ||
+ | |||
+ | === SDL === | ||
+ | |||
+ | A biblioteca SDL ([[https:// | ||
+ | |||
+ | * abertura de janelas | ||
+ | * operações de desenho (linhas, áreas, etc) | ||
+ | * operações de áudio | ||
+ | * leitura de posição e eventos do mouse | ||
+ | * leitura do teclado | ||
+ | * Uso de fontes de caracteres | ||
+ | |||
+ | Esta biblioteca está disponível para C e C++ em várias plataformas, | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | * http:// | ||
+ | |||
+ | === Allegro === | ||
+ | |||
+ | A biblioteca [[http:// | ||
+ | |||
+ | Algumas de suas características: | ||
+ | |||
+ | * multiplataforma: | ||
+ | * pode ser usada em C e outras linguagens | ||
+ | * usa aceleração gráfica (através de OpenGL ou DirectX) | ||
+ | * manipulação de áudio e vídeo | ||
+ | |||
+ | ===== Interface de usuário ===== | ||
+ | |||
+ | === NCurses === | ||
+ | |||
+ | A biblioteca [[https:// | ||
+ | |||
+ | * posicionamento do cursor | ||
+ | * leitura não-bloqueante do teclado | ||
+ | * leitura de teclas especiais (setas, teclas de função) | ||
+ | * manipulação de cores | ||
+ | * criação de janelas, menus e forms em modo texto | ||
+ | * leitura de eventos do mouse | ||
+ | |||
+ | Estas páginas oferecem informações adicionais sobre a biblioteca NCurses: | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * Exemplos do ncurses no Linux, em ''/ | ||
+ | * [[http:// | ||
+ | |||
+ | === 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). | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * Tutorial GTK: [[https:// | ||
+ | * Construtor de interfaces: [[https:// | ||
+ | |||
+ | ===== Armazenamento ===== | ||
+ | |||
+ | === GDBM === | ||
+ | |||
+ | A biblioteca GDBM ([[http:// | ||
+ | |||
+ | A estrutura interna da base permite operações de busca/ | ||
+ | |||
+ | === SQLite === | ||
+ | |||
+ | Quando um programa precisa armazenar e manipular um grande volume de dados estruturados, | ||
+ | |||
+ | 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 ([[https:// | ||
+ | |||
+ | * números complexos | ||
+ | * raízes de polinômios | ||
+ | * álgebra linear | ||
+ | * equações diferenciais | ||
+ | * transformadas | ||
+ | * estatística | ||
+ | * integração (Monte Carlo, etc) | ||
+ | * otimização (mínimos quadrados, etc) | ||
+ | |||
+ | === OpenCV === | ||
+ | |||
+ | A biblioteca OpenCV ([[http:// | ||