libconfig
2014-12-03
홈페이지1: http://www.hyperrealm.com/libconfig/
홈페이지2: https://github.com/evoskuil/libconfig
libconfig – C/C++ Configuration File Library
INI 포맷보다 진보된 계층 구조의 형태의 포맷을 가지는 Configuration 파일 Reader/Writer 라이브러리
Libconfig is a simple library for processing structured configuration files, like this one: test.cfg. This file format is more compact and more readable than XML. And unlike XML, it is type-aware, so it is not necessary to do string parsing in application code.
Libconfig is very compact — a fraction of the size of the expat XML parser library. This makes it well-suited for memory-constrained systems like handheld devices.
The library includes bindings for both the C and C++ languages. It works on POSIX-compliant UNIX systems (GNU/Linux, Mac OS X, Solaris, FreeBSD) and Windows (2000, XP and later).
#---------------------------- # Example Configuration File #--------------------------- # application: { /* This section defines some settings for our * main application window, such as size and * position. */ window: { title = "My Application"; size = { /* width */ w = 640; /* height */ h = 480; }; pos = { x = 350; y = 250; }; }; a = 5; b = 6; ff = 1E6; test-comment = "/* hello\n \"there\"*/"; test-long-string = "A very long string that spans multiple lines. " /* but wait, there's more... */ "Adjacent strings are automatically" " concatenated."; test-escaped-string = "\"This is\n a test.\""; group1: { x = 5; y = 10; my_array = [ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 ]; flag = TRUE; group2: { zzz = "this is a test"; }; states = [ "CT", // Connecticut "CA", // California "TX", // Texas "NV", // Nevada "FL" // Florida ]; }; /* this would cause an error */ // a = "hi!"; }; binary = [ 0xAA, 0xBB, 0xCC ]; list = ( ( "abc", 123, true ), 1.234, ( /* an empty list */ ) ,[ 1, 2, 3 ], { a = (1, 2, true); } ); books = ( "inventory", { title = "Treasure Island"; author = "Robert Louis Stevenson"; price = 29.99; qty = 5; }, { title = "Snow Crash"; author = "Neal Stephenson"; price = 9.99; qty = 8; }, { } ); # miscellaneous stuff misc: { port = 5000; pi = 3.14159265; enabled = FALSE; mask = 0xAABBCCDD; unicode = "STARGΛ̊TE SG-1"; // UTF-8 string bigint = 9223372036854775807L; bighex = 0x1122334455667788L; }; ### eof
다운로드: libconfig-1.4.9.tar.gz
Static 빌드 수정된 버전 다운로드: libconfig-1.4.9.zip
Categorized as: Programming
답글 남기기