⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sample_assimilator.c

📁 利用C语言实现的人工智能系统
💻 C
字号:
// Berkeley Open Infrastructure for Network Computing// http://boinc.berkeley.edu// Copyright (C) 2007 University of California//// This is free software; you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public// License as published by the Free Software Foundation;// either version 2.1 of the License, or (at your option) any later version.//// This software is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.// See the GNU Lesser General Public License for more details.//// To view the GNU Lesser General Public License visit// http://www.gnu.org/copyleft/lesser.html// or write to the Free Software Foundation, Inc.,// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA// A sample assimilator that:// 1) if success, copy the output file(s) to a directory// 2) if failure, append a message to an error log#include <vector>#include <string>#include "boinc_db.h"#include "error_numbers.h"#include "filesys.h"#include "sched_msgs.h"#include "validate_util.h"#include "sched_config.h"using std::vector;using std::string;int write_error(char* p) {    static FILE* f = 0;    if (!f) {        f = fopen("../sample_results/errors", "a");        if (!f) return ERR_FOPEN;    }    fprintf(f, "%s", p);    fflush(f);    return 0;}int assimilate_handler(    WORKUNIT& wu, vector<RESULT>& /*results*/, RESULT& canonical_result) {    int retval;    char buf[1024];    unsigned int i;    retval = boinc_mkdir("../sample_results");    if (retval) return retval;    if (wu.canonical_resultid) {        vector<string> output_file_paths;        char copy_path[256];        get_output_file_paths(canonical_result, output_file_paths);        unsigned int n = output_file_paths.size();        for (i=0; i<n; i++) {            string path = output_file_paths[i];			// check if the file exists and if it does copy to the sample_results folder; we need to do that because if there was a server crash and the data files			// were lost but the database entries were intact, an error will occur at boinc_copy() call			if (boinc_file_exists((const char *)path.c_str()))			{                if (n==1) {                    sprintf(copy_path, "../sample_results/%s", wu.name);                } else {                    sprintf(copy_path, "../sample_results/%s_%d", wu.name, i);                }                retval = boinc_copy(path.c_str() , copy_path);                if (retval) {                    sprintf(buf, "couldn't copy file %s\n", path.c_str());                    write_error(buf);                    return retval;                }			}	        }    } else {        sprintf(buf, "%s: 0x%x\n", wu.name, wu.error_mask);        return write_error(buf);    }    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -