Verwenden Sie eine INI-Datei in C unter Linux

Lesezeit: 4 Minuten

Benutzer-Avatar
Kangkan

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” 🙂

    – 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

Benutzer-Avatar
Schuwalow

Versuchen libconfig:

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


Benutzer-Avatar
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.

    – Kankan

    8. März 2010 um 6:43 Uhr

Benutzer-Avatar
Boris Guéry

Hier sind vier Optionen:

  1. Einparser
  2. libini
  3. sdl-cfg
  4. RWini

  • 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.

Benutzer-Avatar
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.

Benutzer-Avatar
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.

1352630cookie-checkVerwenden Sie eine INI-Datei in C unter Linux

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

Privacy policy