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

如何阅读源代码(3)

 2006-07-04 20:27:47 来源:WEB开发网   
核心提示: 这一段,回忆在README文件中曾经读到过,如何阅读源代码(3)(2),如果log文件是gzip压缩格式,则用gzopen函数打开(可以猜想gz***是一套针对gzip压缩格式的实时解压缩函数),否则调用uname查找机器名,如果没有,如果不是,则用fopen打开

这一段,回忆在README文件中曾经读到过,如果log文件是gzip压缩格式,则用gzopen函数打开(可以猜想gz***是一套针对gzip压缩格式的实时解压缩函数),如果不是,则用fopen打开。  /* switch directories if needed */
  if (out_dir)
  {
  if (chdir(out_dir) != 0)
  {
   /* Error: Can't change directory to ... */
   fprintf(stderr, "%s %s ",msg_dir_err,out_dir);
   exit(1);
  }
  }

同样,回忆在README文件中读到过,如果参数行有-o out_dir, 则将输出结果到该目录,否则,则输出到当前目录。在这一段中,如果输出目录不存在(chdir(out_dir) != 0)则出错。
#ifdef USE_DNS
  if (strstr(argv[0],"webazolver")!=0)
  {
  if (!dns_children) dns_children=5; /* default dns children if needed */
  if (!dns_cache)
  {
   /* No cache file specified, aborting... */
   fprintf(stderr,"%s ",msg_dns_nocf); /* Must have a cache file */
   exit(1);
  }
  }
......

在上面曾经提到过,这是DNS解析的代码部分,可以略过不看,不会影响对整个程序的理解。  /* prep hostname */
  if (!hname)
  {
  if (uname(&system_info)) hname="localhost";
  else hname=system_info.nodename;
  }

这一段继续处理参数做准备工作。如果在命令行中指定了hostname(机器名)则采用指定的名称,否则调用uname查找机器名,如果没有,则用localhost来作为机器名。(同样在README中说得很详细)  /* get past history */
  if (ignore_hist) {if (verbose>1) printf("%s ",msg_ign_hist); }
  else get_history();

上一页  1 2 3 4  下一页

Tags:如何 阅读 源代码

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