#include <libconfig.h>
int main() {
config_t cfg;
config_setting_t *vid_fps_lim = 0;
config_setting_t *vid_fps_val = 0;
config_init(&cfg);
if (config_read_file(&cfg, "myconfig") == CONFIG_TRUE) {
/* lookup the settings we want */
vid_fps_lim = config_lookup(&cfg, "video.fps.limited");
vid_fps_val = config_lookup(&cfg, "video.fps.value");
/* print the current settings */
printf("video.fps.limited = %i\n", config_setting_get_bool(vid_fps_lim));
printf("video.fps.value = %i\n", config_setting_get_int(vid_fps_val));
/* modify the settings */
config_setting_set_bool(vid_fps_lim, 1);
config_setting_set_int(vid_fps_val, 60);
/* write the modified config back */
config_write_file(&cfg, "myconfig");
}
config_destroy(&cfg);
return 0;
}
ファイルに「lcex.c」という名前を付け、設定ファイルに「myconfig」という名前を付けました。これは、次を使用してDebianLinuxマシン上でビルドおよび実行されます...
gcc `pkg-config --cflags libconfig` lcex.c -o lcex `pkg-config --libs libconfig`
./lcex
アプリの実行後に構成ファイルを開くと、値が更新されていることがわかります。
免責事項...読みやすくするためにエラー処理は省略されています。-Wallなどを使用してビルドしませんでした。他のAPIと同様に、ドキュメントを読み、潜在的なエラーを処理します。