以前在开发的过程中,非常想自己实现一个守护服务进程的程序,但与同事交流后,有人推荐看看monit项目,这个是开源的。于是下载了试试,果然很好用。
看了一段时间源码,竟一直没找着其配置文件 /etc/monitrc 的解析部分,甚为着急,不得已将源码重新 configure,make,才发现在 make 时生成了以下文件:
lex.yy.c
tokens.h
y.tab.c
用肉眼读了一下,根本没法看,是工具生成的,截取部分如下:
- case 225:
- YY_RULE_SETUP
- #line 470 "l.l"
- {
- yylval.string = xstrdup(yytext);
- save_arg(); return STRING;
- }
- YY_BREAK
- case 226:
- YY_RULE_SETUP
- #line 475 "l.l"
- {
- yyerror("unbalanced quotes");
- }
- YY_BREAK
- case 227:
- YY_RULE_SETUP
- #line 481 "l.l"
- ;
- YY_BREAK
后来读 Makefile,发现是由两个工具 yacc, lex 生成了这些文件。
看来,解读配置文件功能只能在以后研究,先研究别的吧。