2009-03-29 21 views
5

Sto cercando una libreria per C che mi dia almeno alcune delle cose che mi mancano davvero di C++ e STL/Boost. (Devo usare C, quindi per favore no "uso C++" messaggi)Libreria standard matura per C

ho bisogno

  1. stringhe dinamiche (che crescono e si restringono automaticamente)
  2. una sorta di lista (std :: sostituzione vettore)
  3. qualcosa di simile stringstream (per il tipo conversazioni & buffer)

inoltre, deve avere un'implementazione Fonte maturo e aperto e deve essere la piattaforma independan t (Windows, Linux e Mac devono essere supportati).

Qualche consiglio?

+0

Il titolo della domanda è un termine improprio; ciò che cercate è una libreria non standard per C. La libreria standard per C non fornisce ciò che richiedete. –

+0

Penso che Jonathan abbia ragione, ma l'ho letto. Parlami di una libreria di strutture C utilizzabile – Friedrich

risposta

14

E lo GLib di GTK?

+0

Sembra interessante, hai qualche esperienza con esso? È utilizzabile e non troppo complicato per imparare? – Milan

+0

Siamo spiacenti, non ho alcuna esperienza con esso. AFAIK, il modo "nativo" per eseguire i programmi per GNOME è in C (non C++) con GLIB. Inoltre, l'autore del client IRC irssi (http://irssi.org) lo usa. Quindi molte persone lo usano (non che questo implichi software di alta qualità in ogni caso ...) – Manuel

+0

glib è molto facile da usare. È molto coerente e una delle migliori librerie software "gratuite". – Friedrich

4

Suggerirei il Apache Portable Runtime. È ragionevolmente piccolo, portatile e potente: alimenta l'httpd di Apache su più piattaforme, almeno.

+0

Grazie per il tuo suggerimento. – Milan

2

È sempre possibile prendere in considerazione l'incorporamento di un runtime di linguaggio dinamico nell'applicazione. Il core Lua non è affatto grande, fornisce tipi di dati che soddisfano i requisiti, è open source e MIT con licenza, quindi è compatibile sia con FOSS sia con progetti commerciali.

Non è necessario utilizzare il codice scritto in Lua per trarne vantaggio, poiché la sua API C fornisce accesso completo ai suoi tipi di dati e ai loro valori. Tuttavia, è possibile spostare in seguito alcune delle logiche dell'applicazione in Lua, per migliorare la chiarezza di espressione e altri vantaggi della codifica in un linguaggio dinamico con funzioni come valori di prima classe.

Problemi correlati