使用c中的单个函数调用解析.conf文件

时间:2013-07-17 17:56:49

标签: c

在c程序中有解析.conf文件的优雅方法吗?比如,如果我有正常的文本文件 -

param1 = 22
param2 = 99
param34 = 11
param11 = 15
...

在一个函数调用中获取访问权限很好,如:

int c = xfunction(my.conf, param34);

现在c = 11.非常感谢。

2 个答案:

答案 0 :(得分:2)

#include <stdio.h>
#include <stdlib.h>

#define xfunction(file, param) \
        system("awk '/^" #param " = [0-9]+$/{ num = $3 };END { exit num }' " #file)

int main(void){
    int c = xfunction(my.conf, param34);
    printf("%d\n", c);
    return 0;
}

答案 1 :(得分:0)

最好使用链接列表,如下所示

struct node
{
  char *key;
  int value;
};

并将所有key value对分配给节点,您可以在将conf文件解析为node时添加linked list个。{/ p>

稍后搜索时,您只需遍历linked list并通过简单的key检查strcmp()并获取值。