jake1036

larbin源码分析(十二) global文件中的四个init初始化模块函数

larbin源码分析(十二) global文件中的四个init初始化模块函数

     一 在global.cc文件中的global构造函数中,存在四个初始化模块函数 initSpecific() , initInput() , initOutput() , initSite() 。
         下面分别分析这四个初始化函数的作用。
      (1) initSpecific 函数定义在 file.cc文件中。然而却没有具体的实现,据估计是用作 处理 网页中出现的jpg 等多媒体文件的。
      (2)initInput() 函数 ,实际上只有定义了thread_output才有实现。
      (3)initOutput()函数,实际上该函数主要是调用了useroutput.cc中的inituseroutput()函数。
         函数的主要作用是将爬取的网页存储在计算机硬盘中。
          根据options.h头文件中,可以使用不同的
          
        #ifdef SIMPLE_SAVE
        #include "interf/saveuseroutput.cc"
        该类文件的具体实现
       
       void initUserOutput () { 实质上是构建存储文件
         mkdir(saveDir, S_IRWXU);          //创建存储目录 /save
         endFileName = strlen(saveDir);    //获取文件的长度
         fileName = new char[endFileName+maxUrlSize+50]; //分配文件名称
         strcpy(fileName, saveDir);
         if (fileName[endFileName-1] != '/') fileName[endFileName++] = '/';
         strcpy(fileName+endFileName, "d00000/f00000");
         endFileName += 12; // indique le dernier char ecrit
}



        #elif defined(MIRROR_SAVE)
        #include "interf/mirrorsaveuseroutput.cc"

       #elif defined(STATS_OUTPUT)
       #include "interf/statsuseroutput.cc"

       #else // DEFAULT_OUTPUT
       #include "interf/defaultuseroutput.cc" 该文件中基本无定义实现

posted on 2011-06-21 13:50 kahn 阅读(447) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理