static void _tac(int tac_fileno, size_t file_size) { void *p_mmap; if((p_mmap = mmap(0, file_size, PROT_READ, MAP_PRIVATE, tac_fileno, 0)) == MAP_FAILED) { perror("mmap"); close(tac_fileno); exit(EXIT_FAILURE); } deal_mem((char *)p_mmap, file_size); if(munmap(p_mmap, file_size) < 0) { perror("munmap"); close(tac_fileno); exit(EXIT_FAILURE); } close(tac_fileno); }
int UsrAccConfig::init(const char* cfg) { cfg_file(cfg); std::ifstream infile; infile.open(cfg,std::ios::in); std::string read_line; std::string read_section; unsigned int find_pos; std::string read_value; std::string read_key; if (infile.is_open()) { while (!infile.eof()) { std::getline(infile,read_line); if (read_line.find("#") != std::string::npos) { read_line.erase(read_line.find("#")); } if (read_line.find("//") != std::string::npos) { read_line.erase(read_line.find("//")); } if (read_line.length()==0) {continue;} if (read_line.find("[") != std::string::npos && read_line.find("]")!=std::string::npos) { read_section = read_line.substr(read_line.find("[")+1,read_line.find("]")-1); } else { if ((find_pos=read_line.find("=")) != std::string::npos) { if (read_section == "LoggerConfiguration") { deal_logger_configuration(read_line,find_pos); // initializing logger ... if (logger_config_file_ != "") { CommonLogger::instance().init(logger_config_file_.c_str(), "acc"); } } else if (read_section == "System") { if (deal_system(read_line,find_pos) == -1) { return -1; } } else if (read_section == "AppReqServer") { if (deal_app_req_server(read_line,find_pos) == -1) { return -1; } } else if (read_section == "MEM") { if (deal_mem(read_line,find_pos)) { return -1; } } else if (read_section == "ServLogic") { if (deal_serv_logic(read_line,find_pos) == -1) { return -1; } } else if (read_section == "FileManage") { if (deal_file_manage(read_line,find_pos) == -1) { return -1; } } else { printf("%s%s\n","unknown section name : ", read_section.c_str()); return -1; } } } } if (logger_config_file_ == "") { return -1; } } else { printf("%s\n","failed to open the configuration file."); return -1; } return 0; }