示例#1
0
string getUsedTime(string s) {
    int pos=s.find("</td>");
    pos++;pos=s.find("</td>",pos);
    pos++;pos=s.find("</td>",pos);
    pos++;pos=s.find("</td>",pos);
    int st=pos-1;
    while (s[st]=='\t') st--;
    pos=st;
    st++;
    while (s[pos]!='\t') pos--;
    pos++;
    string t=s.substr(pos,st-pos);
    if (t=="-") return "0";
    double r;
    sscanf(t.c_str(),"%lf",&r);
    return covert((int)(r*1000+0.01));
}
示例#2
0
文件: test.cpp 项目: jie414341055/toj
void judge(string pid,string lang,string runid,string src) {
	/* minjie*/
	db_client.insert("toj.Status",
			BSON("run_ID" << temp.runid << "result" << "Queuing" << "speed" << 50 << "submit_time" << temp.submit_time
				<< "pid"<< temp.pid <<"lang"<<lang<<"username"<<temp.user<<"code_len"<< covert(src.length())));

	db_client.insert("toj.Code", BSON("run_ID" << temp.runid << "code" << src));

	if (src.length()<51) {
		toBottFile(runid,"0","0","Compile Error","");
		return;
	}
	if (!login()) {
		writelog("Login error!\n");
		toBottFile(runid,"0","0","Judge Error","");
		//minjie
		//puts("Login error");
		return;
	}

	writelog("Logined\n");
	lang=corrlang[lang];
	if (!submit(pid,lang,src)) {
		writelog("Submit error!\n");
		toBottFile(runid,"0","0","Judge Error","");
		return;
	}
	writelog("Submitted\n");
	string result,ce_info,tu,mu;
	if (!getStatus(pid,lang,result,ce_info,tu,mu)) {
		writelog("Get Error!\n");
		toBottFile(runid,"0","0","Judge Error","");
		return;
	};
	toBottFile(runid,tu,mu,result,ce_info);
}
示例#3
0
int main(int argc, char *argv[])
{
    int port_number;
    if (argc!=3) {
        printf("Illegal call!\nPlease follow the format below!\n%s <IP address> <port>\n",argv[0]);
        exit(1);
    }

    init();
    curl_global_init(CURL_GLOBAL_ALL);

    if ((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1) {
        writelog("socket() error!\n");
        exit(1);
    }
    bzero(&server,sizeof(server));
    port_number=atoi(argv[2]);
    //port_number=5566;
    server.sin_family=AF_INET;
    server.sin_port=htons(port_number);
    server.sin_addr.s_addr=inet_addr(argv[1]);
    //server.sin_addr.s_addr=inet_addr("127.0.0.1");
    if (connect(sockfd,(struct sockaddr*)&server,sizeof(server))==-1)
    {
        writelog("connect() error!\n");
        exit(1);
    }
    writelog("Connected!\n");
    send_register_info();
    //return 0;
    /*getchar();
    printf("After\n");*/
    char templog[3000]={0};
    FILE *target_file;
    while (1)
    {
        target_file=fopen("temp.bott","w");
        usleep(5000);
        got_things=false;
        while ((num=recv(sockfd,buffer,MAX_DATA_SIZE,MSG_DONTWAIT))>0)
        {
            got_things=true;
            fputs(buffer,target_file);
        }
        fclose(target_file);
        if (num==0) reconnect();
        //printf("%d\n",num);
        //writelog("test");
        if (got_things) {
            writelog("Received a command.\n\n");
            convert();
            //void judge(string pid,string lang,string runid)
            judge(temp.vid,covert(temp.lang),covert(temp.runid),temp.src);
            sprintf(templog,"Sending result of runid:%d\n",temp.runid);
            writelog(templog);
            int source=open(tfilename,O_RDONLY);
            memset(buffer,0,sizeof(buffer));
            while((num=read(source,buffer,sizeof(buffer)))>0) {
                write(sockfd,buffer,num);
                //printf("%s\n",buffer);
            }
            close(source);
            // write(sockfd,"__BOTT_FILE_OVER_LABLE__",24);
            writelog("Sent.\n\n");
        }
    }

    return 0;
}
示例#4
0
文件: iconvJni.c 项目: yitoa/YTReader
myconvert(char* fromCode, char* toCode, char* fpath, char* tpath)
{
    char convertAfterBuf[MAXLEN];
    char convertBeforeBuf[MAXLEN];
    memset(convertBeforeBuf, 0, MAXLEN);
    memset(convertAfterBuf, 0, MAXLEN);

    //打开要读的文件
    FILE *fpRead = fopen(fpath, "a+");
    if (NULL == fpRead)
    {
        printf("===> open file: %s is Failed!\n", fpath);

        return -1;
    }

    while(1)
    {
        memset(convertBeforeBuf, 0, MAXLEN);
        memset(convertAfterBuf, 0, MAXLEN);

        //设置读文件句柄偏移量,紧接上次读的位置
        int iRet = fseek(fpRead, 0, SEEK_CUR);
        if (0 != iRet)
        {
            printf("===> fseek is Failed!\n");

            return -1;
        }

        //读文件
        iRet = ReadFile(fpRead, (MAXLEN-1), convertBeforeBuf);
        if (0 != iRet)
        {
            printf("===> ReadFile is Failed!\n");

            return -1;
        }
        printf("===> len: %d\n", strlen(convertBeforeBuf));
        printf("===> convertBeforeBuf: \n%s\n\n", convertBeforeBuf);

        //编码格式转换
        iRet = covert(toCode, fromCode, convertBeforeBuf, strlen(convertBeforeBuf), convertAfterBuf, MAXLEN);
        if (0 != iRet)
        {
            printf("===> convert is Failed!\n");

            return -1;
        }

        //写文件
        iRet = WriteFile(tpath, "a+", strlen(convertAfterBuf), convertAfterBuf);
        if (0 != iRet)
        {
            printf("===> WriteFile is Failed!\n");

            return -1;
        }

        printf("===> convertAfterBuf: \n%s\n\n", convertAfterBuf);

        //判断是否已到文件尾
        if ((MAXLEN-1) > strlen(convertBeforeBuf))
        {
            printf("===> Congratulations!Read File Over!\n");

            break;
        }
    }

    fclose(fpRead);
    return 0;
}