Welche c-lib soll ich verwenden, wenn ich eine einfache Konfigurationsdatei unter Linux analysieren muss? [closed]

Lesezeit: 3 Minuten

Nehmen wir an, ich habe eine einfache Konfigurationsdatei, die mein C-Programm lesen/parsen muss.

Nehmen wir an, es sieht ein bisschen so aus:

#Some comment
key1=data1
key2=data2

Gibt es eine Standard-C-Lib, die ich verwenden kann, anstatt meinen eigenen Parser zu schreiben?

Danke Johann


Notiz: Heute habe ich meinen eigenen kleinen Parser, aber es muss einige Standardbibliotheken geben, die dieses einfache Problem lösen.

  • Ähnliche Frage: stackoverflow.com/questions/1417765/parse-config-file-in-cc . Es gibt keine Standard-C-Bibliothek, die dies tut. Das Schreiben eines eigenen Parsers ist möglicherweise keine schlechte Idee, wenn Ihre Anforderungen einfach sind und sich wahrscheinlich nicht ändern werden.

    – Firas Assaad

    12. Februar 2010 um 9:05 Uhr


  • Dies ist zwar nicht genau das, wonach das OP fragt, aber FWIW, manchmal eine einfache Shell sed/awk Einzeiler aufgerufen mit system() kann sehr praktisch sein.

    – Zaxter

    30. August 2017 um 13:18 Uhr

Benutzer-Avatar
f4.

libconfig aber es tut viel mehr als das, was Sie fragen

Benutzer-Avatar
sampi

Ich finde es erwähnenswert libVerwirren hier, und zitiere seine Beschreibung:

libConfuse ist eine Konfigurationsdatei-Parser-Bibliothek, lizenziert unter den Bedingungen der ISC-Lizenz und in C geschrieben. Sie unterstützt Abschnitte und (Listen von) Werten (Strings, Integers, Floats, Booleans oder andere Abschnitte) sowie einige andere Funktionen (wie Zeichenfolgen in einfachen/doppelten Anführungszeichen, Erweiterung von Umgebungsvariablen, Funktionen und verschachtelte Include-Anweisungen). Es macht es sehr einfach, einem Programm mithilfe einer einfachen API Konfigurationsdateifunktionen hinzuzufügen.

Das Ziel von libConfuse ist nicht, die Parser-Bibliothek für Konfigurationsdateien mit einer Unmenge von Funktionen zu sein. Stattdessen soll es einfach zu bedienen und schnell in Ihren Code zu integrieren sein. libConfuse hieß früher libcfg, aber sein Name wurde geändert, um sich nicht mit anderen ähnlichen Bibliotheken zu verwechseln.

Es scheint der bereits erwähnten libconfig ziemlich ähnlich zu sein. Einen kurzen Vergleich von C- und C++-Parsern finden Sie in Eine Untersuchung der vorhandenen Bibliotheken zum Lesen aus Konfigurationsdateien das könnte ein nützlicher Anfang für jeden sein, der sich für eine der Alternativen entscheidet.

Benutzer-Avatar
äh

Warum nicht einfach GLIB verwenden?

Neben unzähligen anderen Dingen hat es Bibliotheksfunktionen zum Parsen von INI-ähnlichen Konfigurationsdateien:

https://developer.gnome.org/glib/stable/glib-Key-value-file-parser.html

Abgesehen davon unterstützt es auch Datentypen (Listen, Hashtables, Strings, Caches), Threading, plattformneutrale Abstraktionen, Unit-Tests, Fehlerbehandlung und viele andere tolle Sachen.

Für mich ist es die nützlichste C-Bibliothek und ich müsste einen sehr guten Grund haben, ein C-Programm zu schreiben, ohne diese Bibliothek zu verwenden.

Benutzer-Avatar
Marki555

Wenn Sie einen wirklich kleinen und einfachen INI-Parser benötigen (sehr gut für eingebettete Systeme wie Router), versuchen Sie es INIH. Es sind nur 2-3 Seiten Code.

Ich habe eine einfache C-Bibliothek implementiert, die die Konfigurationsdatei analysiert:

https://github.com/taneryilmaz/libconfigini

Informationen zur Verwendung finden Sie im Verzeichnis tests.

Benutzer-Avatar
Wladislav Rastrusny

http://code.jellycan.com/simpleini/

Sie können einfache INI-Dateien verwenden.

Benutzer-Avatar
Tim Schäfer

Hier ist eine, die ich mit Erfolg verwendet habe:

http://ndevilla.free.fr/iniparser/

Es ist klein und unabhängig.

1363870cookie-checkWelche c-lib soll ich verwenden, wenn ich eine einfache Konfigurationsdatei unter Linux analysieren muss? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy