¿Qué c lib debo usar cuando necesito analizar un archivo de configuración simple en Linux? [closed]

3 minutos de lectura

Digamos que tengo un archivo de configuración simple que mi programa c necesita leer/analizar.

Digamos que se parece un poco a esto:

#Some comment
key1=data1
key2=data2

¿Existe una biblioteca c estándar que pueda usar en lugar de escribir mi propio analizador?

gracias johan


Nota: Hoy tengo mi propio pequeño analizador, pero debe haber algunas bibliotecas estándar que resuelvan este simple problema.

  • Pregunta similar: stackoverflow.com/questions/1417765/parse-config-file-in-cc . No hay una biblioteca C estándar que haga esto. Escribir su propio analizador puede no ser una mala idea si sus requisitos son simples y es poco probable que cambien.

    – Firas Assad

    12 de febrero de 2010 a las 9:05


  • Aunque esto no es exactamente lo que pide el OP, sino FWIW, a veces un shell simple sed/awk una línea invocada usando system() puede ser muy útil.

    – Zaxter

    30 de agosto de 2017 a las 13:18

avatar de usuario
f4.

libconfig pero hace bastante más de lo que estás pidiendo

avatar de usuario
sampi

creo que vale la pena mencionarlo libConfundir aquí, y cite su descripción:

libConfuse es una biblioteca de análisis de archivos de configuración, con licencia según los términos de la licencia ISC y escrita en C. Admite secciones y (listas de) valores (cadenas, enteros, flotantes, booleanos u otras secciones), así como algunas otras características (como cadenas entre comillas simples/dobles, expansión de variables de entorno, funciones y declaraciones de inclusión anidadas). Hace que sea muy fácil agregar la capacidad de archivo de configuración a un programa usando una API simple.

El objetivo de libConfuse no es ser la biblioteca de análisis de archivos de configuración con un montón de características. En cambio, pretende ser fácil de usar y rápido de integrar con su código. libConfuse se llamaba libcfg antes, pero se cambió su nombre para no confundirse con otras bibliotecas similares.

Parece bastante similar al libconfig ya mencionado. Hay una breve comparación de los analizadores C y C++ en Un estudio de las bibliotecas existentes para leer desde los archivos de configuración eso podría ser un comienzo útil para cualquiera que elija entre las alternativas.

avatar de usuario
jeje

¿Por qué no usar simplemente GLIB?

Entre muchas otras cosas, tiene funciones de biblioteca para analizar INI como archivos de configuración:

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

Aparte de eso, también es compatible con tipos de datos (listas, tablas Hash, cadenas, cachés), subprocesos, abstracciones neutrales de la plataforma, pruebas unitarias, manejo de errores y muchas otras cosas geniales.

Para mí, es la biblioteca C más útil y necesitaría tener una muy buena razón para escribir un programa C sin usar esta biblioteca.

avatar de usuario
marki555

Si necesita un analizador INI realmente pequeño y simple (muy bueno para sistemas integrados como enrutadores), intente INIH. Son solo 2-3 páginas de código.

Implementé una biblioteca C simple que analiza el archivo de configuración:

https://github.com/taneryilmaz/libconfigini

Consulte el directorio de pruebas para conocer el uso.

avatar de usuario
Vladislav Rastrusni

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

Puede utilizar archivos INI simples.

avatar de usuario
tim schaeffer

Aquí hay uno que he usado con éxito:

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

Es pequeño e independiente.

¿Ha sido útil esta solución?