LARBIN源代码分析[12]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-10-24 17:45  zhoulinhu  阅读(324)  评论(0编辑  收藏  举报

导航