int main() {
    int fd0, fd1, fd2;
    pid_t pid = fork();
    if (pid < 0) {
        exit(1);
    } else if (pid != 0) {
        exit(0);
    }
    setsid();
    if (chdir("/") < 0) {
        exit(1);
    }
    fd0 = open("/dev/null", O_RDWR);
    fd1 = dup(0);
    fd2 = dup(0);
    FILE * g_pFile;
    g_pFile = fopen("/home/lvhongliang/autoAnswer/AutoAnswer/log.txt", "a+");
    const char* configLoc = "/home/lvhongliang/autoAnswer/AutoAnswer/configLoc.txt";
    ConfigFile config; 
    config.load(configLoc);
    QuestionVectorFactory qvFactory(&config);
    DBBase db;
    int conRet = db.openConnection(config.Value("database", "server").c_str(),
            config.Value("database", "dbname").c_str(),
            config.Value("database", "user").c_str(),
            config.Value("database", "password").c_str());
    if (200 != conRet) {
        cout << dberror(conRet);
        exit(1);
    }

    //fprintf(g_pFile, "%s\n", "all data is loaded successfully! start the web server...");
    RelatedQuestions ser(g_pFile, &qvFactory, &db);
    ser.serv(9999, 10);
    return 0;
}
Beispiel #2
0
std::string getValFromConfig(ConfigFile &config, const char* section, const char* valueName) {
    std::string value = config.Value(section,valueName);
    size_t first = value.find_first_not_of(' ');
    return value.substr(first, value.length()-first);
}