以前在开发的过程中,非常想自己实现一个守护服务进程的程序,但与同事交流后,有人推荐看看monit项目,这个是开源的。于是下载了试试,果然很好用。

  看了一段时间源码,竟一直没找着其配置文件 /etc/monitrc 的解析部分,甚为着急,不得已将源码重新 configure,make,才发现在 make 时生成了以下文件:

 lex.yy.c

 tokens.h

 y.tab.c

 

  用肉眼读了一下,根本没法看,是工具生成的,截取部分如下:

 

 
  1. case 225:  
  2. YY_RULE_SETUP  
  3. #line 470 "l.l"  
  4. {  
  5.                       yylval.string = xstrdup(yytext);  
  6.                       save_arg(); return STRING;  
  7.                   }  
  8.     YY_BREAK  
  9. case 226:  
  10. YY_RULE_SETUP  
  11. #line 475 "l.l"  
  12. {  
  13.                       yyerror("unbalanced quotes");  
  14.                   }  
  15.     YY_BREAK  
  16.  
  17. case 227:  
  18. YY_RULE_SETUP  
  19. #line 481 "l.l"  
  20. ;  
  21.     YY_BREAK 

   后来读 Makefile,发现是由两个工具 yacc, lex 生成了这些文件。

  看来,解读配置文件功能只能在以后研究,先研究别的吧。