WEB开发网
开发学院网络安全黑客技术 如何阅读源代码(3) 阅读

如何阅读源代码(3)

 2006-07-04 20:27:47 来源:WEB开发网   
核心提示:清空哈西表,为下面即将进行的排序工作做好准备,如何阅读源代码(3),关于哈西表,这是数据结构中常用的一种用来快速排序的结构,如果不指定DNS支持,这些代码段则会出现(ifdef)或者不出现(ifndef).下面略过这些代码段,如果不清楚,可以参考相关书籍

清空哈西表,为下面即将进行的排序工作做好准备。关于哈西表,这是数据结构中常用的一种用来快速排序的结构,如果不清楚,可以参考相关书籍,比如清华的<<数据结构>>教材或者<<数据结构的C++实现>>等书。 if (verbose>1)
  {
  uname(&system_info);
  printf("Webalizer V%s-%s (%s %s) %s ",
    version,editlvl,system_info.sysname,
    system_info.release,language);
  }

这一段,是打印有关系统的信息和webalizer程序的信息(可以参考uname的函数说明)。
#ifndef USE_DNS
  if (strstr(argv[0],"webazolver")!=0)
  {
  printf("DNS support not present, aborting... ");
  exit(1);
  }
#endif /* USE_DNS */

这一段,回忆我们在看README文件的时候,曾经提到过可以在编译的时候设置选项开关来设定DNS支持,在源代码中可以看到多次这样的代码段出现,如果不指定DNS支持,这些代码段则会出现(ifdef)或者不出现(ifndef).下面略过这些代码段,不再重复。
/* open log file */
  if (gz_log)
  {
  gzlog_fp = gzopen(log_fname,"rb");
  if (gzlog_fp==Z_NULL)
  {
   /* Error: Can't open log file ... */
   fprintf(stderr, "%s %s ",msg_log_err,log_fname);
   exit(1);
  }
  }
  else
  {
  if (log_fname)
  {
   log_fp = fopen(log_fname,"r");
   if (log_fp==NULL)
   {
    /* Error: Can't open log file ... */
    fprintf(stderr, "%s %s ",msg_log_err,log_fname);
    exit(1);
   }
  }
  }

1 2 3 4  下一页

Tags:如何 阅读 源代码

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接