|
发表于 2009-11-13 10:15:33
|
显示全部楼层
在parse_line_formatted函数,如一下代码,对于配置文件的每一个选项,调用此函数,进行字符串比较。看看是否符合注册的sop中的name变量。然后调用sop中的相应的函数进行解析.
skyeye_option_t *sop;
//int len = sizeof (skyeye_options) / sizeof (skyeye_option_t);
int retval = 0;
if(skyeye_option_list == NULL)
return 0;
sop = skyeye_option_list;
if (num_params < 1)
return 0;
while(sop != NULL){
if (!strncmp (sop->option_name, params[0], MAX_OPTION_NAME)) {
if (retval = sop->do_option (sop, num_params - 1,
¶ms[1]) < 0) {
fprintf (stderr,
"\"%s\" option parameter error!\n",
params[0]);
return retval;
}
else
return retval;
}
sop = sop->next;
}
fprintf (stderr, "Unkonw option: %s\n", params[0]);
return -1; |
|