Gibt es eine Standardmethode zum Lesen einer Art Konfiguration wie INI Dateien für Linux mit C?
Ich arbeite an einem Linux-basierten Handheld und schreibe Code in C.
Ansonsten wüsste ich gerne Alternativen.
Letztes Update:
Ich habe LibConfig erforscht und sogar verwendet. Aber der Fußabdruck ist hoch und meine Verwendung ist zu einfach. Um den Platzbedarf zu reduzieren, habe ich meine eigene Implementierung eingeführt. Die Implementierung ist nicht zu generisch, im Moment sogar ziemlich gekoppelt. Die Konfigurationsdatei wird einmalig beim Start der Anwendung geparst und auf einige globale Variablen gesetzt.
Auf jeden Fall +1 für die Frage nach dem Weg, anstatt selbst zu rollen # 74632!
– DevSolar
17. Februar 2010 um 12:07 Uhr
@DevSolar, aw cmon, jede Chance, Ihren eigenen Parser zu starten, anstatt produktivere Dinge zu tun, ist gut! (Zunge in Wange)
– Tim Post
17. Februar 2010 um 12:11 Uhr
Wenn Sie eine Liste mit Optionen wünschen, sollten Sie Ihre Frage bearbeiten, um dies anzugeben. Im Moment ist die richtige Antwort “nein, es gibt keinen Standardweg” 🙂
eine einfache Bibliothek zur Verarbeitung strukturierter Konfigurationsdateien, wie diese hier: test.cfg. Dieses Dateiformat ist kompakter und besser lesbar als XML. Und im Gegensatz zu XML ist es typbewusst, sodass es nicht erforderlich ist, Zeichenfolgen im Anwendungscode zu analysieren.
Libconfig ist sehr kompakt – ein Bruchteil der Größe der Expat-XML-Parser-Bibliothek. Dadurch eignet es sich gut für speicherbeschränkte Systeme wie Handheld-Geräte.
Die Bibliothek enthält Bindungen für die Sprachen C und C++. Es funktioniert auf POSIX-kompatiblen UNIX- und UNIX-ähnlichen Systemen (GNU/Linux, Mac OS X, Solaris, FreeBSD), Android und Windows (2000, XP und höher)…
Es scheint, dass libconfig das richtige Chice ist, wenn man seine Einfachheit und geringe Größe betrachtet. Danke vielmals.
– Kankan
17. Februar 2010 um 12:15 Uhr
libconfig sieht gut aus, hat aber eine giftige GNU-Lizenz für Closed-Source-Projekte.
– jww
22. Dezember 2019 um 5:43 Uhr
Gnud
Nein, es gibt keinen Standardweg. Tut mir leid, aber das ist wahrscheinlich die präziseste Antwort 🙂
Sie können sich jedoch diese Liste der Linux-Konfigurationsdateibibliotheken ansehen. Das könnte hilfreich sein.
komisch, wie das OP nach a fragt Standard Methode, bekommt 7 anders Vorschläge (alle modifiziert) und eine Antwort, die besagt, dass es eine gibt keine Norm wird runtergemoddet.
– SF.
17. Februar 2010 um 12:11 Uhr
Vor der Bearbeitung sagte die Antwort nur “Nein”, ohne einen Hinweis auf verfügbare Optionen zu geben. Deshalb hat es von mir -1 bekommen, weil das ungefähr so hilfreich ist wie das Drücken von F1 unter Windows. Jetzt, mit der Liste der Optionen, ist es eine gute Antwort, und deshalb mache ich die Abstimmung rückgängig.
– DevSolar
18. Februar 2010 um 5:54 Uhr
Es dämmerte mir, dass der Autor vielleicht, obwohl die Frage nach einem Standardweg gefragt war, wirklich andere Optionen haben wollte. Aber darum geht es ihm eigentlich gar nicht, daher das anfängliche „Nein“.
– Gnud
18. Februar 2010 um 10:04 Uhr
@gnud: Obwohl ich nach einem Standardweg gefragt habe, besteht die Absicht darin, die Lösung für ein Problem zu kennen. Ich habe verstanden, dass die Frage so gestellt werden sollte, dass man auch andere Antworten bekommt. Ich aktualisiere die Frage. Danke vielmals.
Kümmern Sie sich nicht um #1 (Iniparser). Das muss die schlechteste Implementierung sein, die ich bisher gesehen habe.
– Andy
20. April 2017 um 17:20 Uhr
Wenn Sie das verwenden können (ausgezeichnet, in jeder C-basierten Anwendung) glattes hat ein Schlüssel-Wert-Datei-Parser das für Dateien im .ini-Stil geeignet ist. Natürlich bekommt man auch “umsonst” Zugriff auf die diversen (sehr schönen) Datenstrukturen in glib.
Es gibt einen aktualisierten Fork von iniparser unter ckann, der ursprüngliche Autor konnte ihm im Laufe der Jahre nicht viel Aufmerksamkeit schenken. Haftungsausschluss – Ich behalte es bei.
Darüber hinaus enthält iniparser ein Wörterbuch, das für sich genommen sehr nützlich ist.
Bernhard Ramos
Wenn Sie einen schnellen und kleinen Code nur zum Lesen von Konfigurationsdateien benötigen, empfehle ich die inih
Es lädt den Inhalt der Konfigurationsdatei nur einmal, analysiert den Inhalt und ruft eine Callback-Funktion für jedes Schlüssel/Wert-Paar auf.
Wirklich klein. Es kann auch auf eingebetteten Systemen verwendet werden.
David
Ich hasse es, etwas ganz anderes vorzuschlagen, wenn ich XML vorschlage, aber libexpat ist ziemlich minimal, tut aber XML.
Ich bin zu diesem Schluss gekommen, weil ich die gleiche Frage hatte wie Sie, aber dann wurde mir klar, dass das Projekt bereits libexpat eingebunden hatte – und ich sollte wahrscheinlich einfach das verwenden.
13526300cookie-checkVerwenden Sie eine INI-Datei in C unter Linuxyes
Auf jeden Fall +1 für die Frage nach dem Weg, anstatt selbst zu rollen # 74632!
– DevSolar
17. Februar 2010 um 12:07 Uhr
@DevSolar, aw cmon, jede Chance, Ihren eigenen Parser zu starten, anstatt produktivere Dinge zu tun, ist gut! (Zunge in Wange)
– Tim Post
17. Februar 2010 um 12:11 Uhr
Wenn Sie eine Liste mit Optionen wünschen, sollten Sie Ihre Frage bearbeiten, um dies anzugeben. Im Moment ist die richtige Antwort “nein, es gibt keinen Standardweg” 🙂
– Gnud
17. Februar 2010 um 12:13 Uhr
Vielen Dank für den motivierenden Klaps.
– Kankan
17. Februar 2010 um 12:16 Uhr
Endlich habe ich mir selbst einen gerollt.
– Kankan
30. Juli 2010 um 4:22 Uhr