Chinaunix首页 | 论坛 | 博客
  • 博客访问: 96023
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2014-02-24 22:04
文章分类

全部博文(31)

文章存档

2014年(31)

我的朋友

分类: C/C++

2014-07-24 10:42:40



main
|-----.....
|-----tracker_load_from_conf_file
|-----tracker_load_status_from_file
|-----base64_init_ex
|-----.....



在main函数中,调用tracker_load_status_from_file从状态文件中获取状态信息到g_tracker_last_status变量中

点击(此处)折叠或打开

  1. if ((result=tracker_load_status_from_file(&g_tracker_last_status)) != 0)//从状态文件中读取状态信息
  2.     {
  3.         log_destroy();
  4.         return result;
  5.     }

点击(此处)折叠或打开

  1. typedef struct {
  2.     time_t up_time;   //tracker的uptime
  3.     time_t last_check_time;  //tracker的最后checktime
  4. } TrackerStatus


点击(此处)折叠或打开

  1. //从状态文件获取tracker的状态信息
  2. int tracker_load_status_from_file(TrackerStatus *pStatus)
  3. {
  4.     char full_filename[MAX_PATH_SIZE];
  5.     IniContext iniContext;
  6.     int result;

  7.     snprintf(full_filename, sizeof(full_filename), "%s/data/%s", \
  8.         g_fdfs_base_path, TRACKER_STATUS_FILENAME);  //这个地址是  g_fdfs_base_path/data/.tracker_status,这个文件是个隐藏文件,g_fdfs_base_path是从配置tracker的配置文件中获取得到的
  9.     if (!fileExists(full_filename))     //由于程序刚刚初始化,这个文件应该还没有被创建,所以这里直接返回了
  10.     {
  11.         return 0;
  12.     }

  13.     memset(&iniContext, 0, sizeof(IniContext));
  14.     if ((result=iniLoadFromFile(full_filename, &iniContext)) != 0)  //iniLoadFromFile在以前读取配置文件的过程中分析过
  15.     {
  16.         logError("file: "__FILE__", line: %d, " \
  17.             "load from status file \"%s\" fail, " \
  18.             "error code: %d", \
  19.             __LINE__, full_filename, result);
  20.         return result;
  21.     }

  22.     pStatus->up_time = iniGetIntValue(NULL, TRACKER_STATUS_ITEM_UP_TIME, \  //获取up_time
  23.                 &iniContext, 0);
  24.     pStatus->last_check_time = iniGetIntValue(NULL, \    //获取last_check_time
  25.             TRACKER_STATUS_ITEM_LAST_CHECK_TIME, &iniContext, 0);

  26.     iniFreeContext(&iniContext);  //释放iniContext空间,这个函数也在读取配置文件的过程中分析过

  27.     return 0;
  28. }

tracker_load_status_from_file执行完毕后,tracker从配置文件中读取的信息保存在全局变量g_tracker_last_status中了



阅读(713) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~