2008-11-17 14 views
19

Ich habe ein paar Hobby-C-Programmierung Projekte, die ich gerne starten würde. Ich suche nach einer Open-Source-Bibliothek, die eine liberale Lizenz hat (Ich will Kredit, aber so ziemlich jeder kann verwenden). Die Bibliothek muss Zeichenfolgen haben, die besser als die C-Standardbibliothek und einige portable Threading-Primitive sind.GLib v APR Pro und Kontra von jedem

Ich erwäge GLib und APR. Was ist deine praktische Erfahrung? Welches ist die bessere grundlegende C-Bibliothek? Gibt es andere Bibliotheken, die dieselbe Nische füllen?

Antwort

12

Ich denke, Glib ist in der Regel besser als Apr. glib hat viele weitere Datenstrukturen als portable Bibliotheken. B. Hash-Tabellen, alle Arten von Listen, Warteschlangen, Stapel, dynamisches Array, auch für das Parsen von Argumenten, Datei io hat auch eigene Wrapper und Speicherverwaltung ist leicht modifizierbar. Z. B. können Sie leicht den Böhm Weisser GC benutzen, das ist AFAIKT nie gemacht worden oder einfach möglich mit Apache. Ich würde mich ein bisschen anders entscheiden. Wenn Sie eine nützlichere Bibliothek von Datenstrukturen benötigen, ist glib besser ausgestattet. Wenn es um GUI-Sachen geht, hat libapr nichts, während glib gdk/gtk + und eine Menge Zeug für Gnome hat, wenn du magst.

Wenn es jedoch um Netzwerkkram geht, hat libapr definitiv einen Vorteil gegenüber glib.

So meine Vorschläge ist

  • Desktop-Programmierung: Verwenden Sie GTK + und glib.
  • Netzwerk-Zeug: Verwenden Sie apr, aber seien Sie versichert, glib hat all diese tragbaren Sachen auch.
7

Ich würde mit APR gehen. APR ist besser in der Portabilität Unix/Windows (als dedizierte Portabilitätsbibliothek), GLib war traditionell eher Unix-orientiert. APR ist eine größere Bibliothek als GLib, mit vielen nützlichen Dingen (Hashtabellen, Parsing von Argumenten, Datei-E/A-Daten, Speicherverwaltung, Routinen mit gemeinsamem Speicher, Signalverarbeitung usw.).

+1

Übrigens umfasst glib jetzt gio, das portable I/O mit einer Stream-orientierten Architektur ist. Ich würde nicht denken, dass apr ist so groß wie glib überhaupt. – lethalman

+2

Also, wie ist es heute? Welches ist größer? Und ist diese Antwort immer noch gültig? – einpoklum

+0

Das libapr-Zeug ist viel weniger als das glib/gtk-Zeug. Es gibt keinen Zweifel daran .. – Friedrich

1

Gibt es einen Grund, warum Sie die C++ stl nicht verwenden möchten? Auch wenn Sie "c-style" -Code ohne Klassen schreiben, können Sie C++ - Strings und Datenstrukturen verwenden.

Es gibt viele gute Gründe, sich an C zu halten. Wenn das der Fall ist, würde ich die Empfehlung für glib absegnen. APR ist eher eine Portabilitätsebene als eine Dienstprogrammbibliothek.

+1

Apropos C++ - Strings, ich würde Ihnen empfehlen zu lesen, was Linus dazu zu sagen hat: http://thread.gmane.org/gmane.comp.version-control.git/57918 –

+1

Ja, Ich stimme zu, dass Linus die richtige Entscheidung getroffen hat, gerade C für Git zu verwenden. Verwenden Sie alles, was für Ihr Projekt und die Zielgruppe der Entwickler geeignet ist. C++ - Zeichenfolgen sind nett, besonders für einen "Hobby" -Programmierer, wie das Plakat sagte, weil Sie nicht Eigentümerschaft und herausfinden müssen, wann man() sie freigibt, und das automatische Wachsen macht es so, dass Sie nicht sich um knifflige strcat-Fälle kümmern müssen. Natürlich, wie ich sagte, "Es gibt viele gute Gründe, um an C ...". Nutze, was für dich funktioniert. – joeld

+1

Die Frage war speziell über das Codieren in C, so dass die C++ - STL nicht relevant ist. (Ja, ich weiß, dieser Kommentar ist 5 Jahre nach der Tat. Junge, diese Fragen und Antworten dauern sicher, nicht wahr?) – einpoklum

Verwandte Themen