Impulsionar como bibliotecas em C [fechado]

pode recomendar bibliotecas revistas por pares que posso usar em ambiente C (algo como Boost para C++) ? Algo que fornece hash, thread, comunicações interprocess, listas, gestão de memória inteligente...

o ambiente é um sistema incorporado, não um sistema muito mínimo, mas também não um PC!

 33
Author: Sourav Ghosh, 2008-10-17

6 answers

+1 Para GLib de mim também. Além disso, ele tem a sua própria API {[[4]}roscando também, então você não tem que aprender pthreads se você não quiser.

Não sei se existe uma coisa como "gestão de memória inteligente" em C, não é muito fácil quando você não tem as redes de segurança de destruidores e controle sobre os operadores. Mas, novamente, GLib tem muitas estruturas de dados orientadas para a memória e coisas que realmente tornam a vida mais fácil. E não, não estou na equipa, mas ... gosto mesmo. :)
 15
Author: unwind, 2008-10-17 19:18:04

Verifique o ProjectoApache Portable Runtime (APR) .

Algumas das suas características:
  • API de gestão da memória
  • tópicos, mutexes
  • ficheiro i / o
  • operações atómicas
  • tabelas de dispersão, matrizes
  • bases de rede e protocolo
  • Memória partilhada, mmap

Sem mencionar que é portátil.

 7
Author: the_void, 2010-07-28 19:37:26
Não sei se encontrarás uma única biblioteca que cubra tudo isso... mas você pode verificar glib e pthreads {[[3]} para cobrir um bom bocado disso.
 6
Author: Nicholas Mancuso, 2008-10-17 19:09:57

Olhe para Boehm GC um colector de lixo conservador amplamente utilizado para C (ou C++) que possa servir as suas necessidades no que diz respeito à gestão inteligente da memória.

 5
Author: postfuturist, 2008-10-17 19:30:55
Eu também vou saltar para a galhofa. Lembre-se que C não fornece nenhum açúcar sintático para estruturas de dados complexas, então há muitos moldes e nomes de funções longas em GLib, mas ele realmente faz um grande e eficiente trabalho com um pouco de verbosidade adicionado!!
 2
Author: Dan Lenski, 2008-10-17 19:19:07

Acerca da utilização de Glib.

Provavelmente podes pegar no que precisas e compilar. Então, se você só precisa do pacote thread - apenas compile isso e não leve tudo. Estou a fazer o mesmo com a VM Python. PyMite se encaixa em um microcontrolador e não usa todas as funcionalidades.
 2
Author: jim, 2008-10-17 19:47:44