Вообщем у меня есть следующее:Файл test.conf:
##################################
## Вот тут большущий коментарий
##################################
test {
bla = bla; # и тут комментарий
bla = bla;
bla = bla;
}Вот как обработать такой синтаксис?
У меня вот есть кое какая идея по этому поводу.Файл parseconf.c
#include <stdio.h>
#define MAXLINE 256
...
void parseconf(void)
{
FILE *fp;
char *line;
char *file;
filename = "test.conf"
if ((fp = fopen("filename", "r")) == NULL)
{
fprintf(stderr, "Can`t open filename: %s\n", filename);
exit(1);
}
while ((fgets(line, MAXLINE, fp)) !=NULL)
{
checkconf(line);
}
}Где функция checkconf - обрабатывает синтаксис, считывает и записывает переменные.
Вот если так надо делать то не пойму, как мне написать эту функцию?
Как сделать чтоб она обрабатывала синтаксис? Если можете напишите готовый пример или поделитесь опытом или идеями.
Заранее спасибо!
попробуй поюзать регулярные выражения.(man regcomp, man regexec)
Но лучше поищи в инете примеры, потому что, например, у меня под РедХат ман довольно кривой по этим функциям.
>Где функция checkconf - обрабатывает синтаксис, считывает и записывает переменные.Для твоего примера конфига такое не подойдет, так как присутствуют многострочные директивы конфигурации. Самый простой путь, не изобретать велосипед, а взять 2-3 небольшие программы в исходниках с конфигурационными файлами подходящего формата и посмотреть как там реализован парсинг конфигов.
Да я так и думал посмотреть в других прогах. Нашел подходящию - named. Хм. Вы видели его сырцы? Это ужас я там ничего не понял.