次の Config.cfg ファイルがあり、Device の値を読み取りたい
[BBDD]
user=**
password=***
database=***
IPServidor=*
port=3***
[Device]
dev=8
Temperatura=5=1001
Humedad=7=1002
Link=8=1003
Volt=9=1004
[Device]
dev=10
Temperatura=5=1012
Humedad=7=1013
Link=8=1014
Volt=9=1015
だから私はlibconfigライブラリを試します。次のコードを書きましたが、何も返されません。何か不足していますか?または、libconfig に問題がありますか? glib でも試しましたが、同じキーワード Device のために使用できません。
#include <stdio.h> // standard input / output functions
#include <string.h> // string function definitions
#include <stdlib.h>
#include <libconfig.h>
#include <glib.h>
int main()
{
config_t cfg; //returns all parameters in this structure
config_setting_t *setting;
const char *str1, *str2;
int tmp;
config_init(&cfg);
if(config_read_file(&cfg, "Config.cfg"))
{
fprintf(stderr, "%s=%d\n", config_error_file(&cfg),config_error_line(&cfg),config_error_text(&cfg));
config_destroy(&cfg);
return(EXIT_FAILURE);
}
//Read the parameter group
setting = config_lookup(&cfg, "Device");
if (setting!= NULL)
{
//Read the string
if(config_setting_lookup_string(setting, "dev", &str1))
{
printf("\n Device: &s", str1);
}
else
printf("\n No 'Device' setting in configuration file");
printf("\n");
}
config_destroy(&cfg);
}
Device と [Device] の両方をキーワードとして使用し、config_setting_lookup_string と config_setting_lookup_int の両方を使用して dev の値を返そうとしましたが、何も起こりません。私のコマンドは私に単純なものを返します
Process returned 0. execution time: 0.115sec