hustoj 配置java_HUSTOJ增加其他语言出现RuntimeError解决办法

HUSTOJ增加其他语言,如Python、Java、Pascal等等,如果程序是正确的,却报运行错误,添加okcall就行。

具体错误可以看日志:

[ERROR] A Not allowed system call: runid:运行编号 callid:id号

TO FIX THIS , ask admin to add the CALLID into corresponding LANG_XXV[] located at okcalls32/64.h ,and recompile judge_client

修改评测机okcall文件(如core/judge_client/okcall64.h),给对应的语言增加callid:后面的id号即可,尽量不用加在开头或者结尾,有些数组首尾是0的,可能有什么特别的含义呢!

CV是C语言;PV是Pascal语言;JV是Java语言;YV是Python语言……如果搞不清楚哪个V对应哪个语言,请看judge_client.cc源代码:

void init_syscalls_limits(int lang) {

int i;

memset(call_counter, 0, sizeof(call_counter));

if (DEBUG)

write_log("init_call_counter:%d", lang);

if (record_call) { // C & C++

for (i = 0; i < call_array_size; i++) {

call_counter[i] = 0;

}

} else if (lang <= 1) { // C & C++

for (i = 0; i==0||LANG_CV[i]; i++) {

call_counter[LANG_CV[i]] = HOJ_MAX_LIMIT;

}

} else if (lang == 2) { // Pascal

for (i = 0; i==0||LANG_PV[i]; i++)

call_counter[LANG_PV[i]] = HOJ_MAX_LIMIT;

} else if (lang == 3) { // Java

for (i = 0; i==0||LANG_JV[i]; i++)

call_counter[LANG_JV[i]] = HOJ_MAX_LIMIT;

} else if (lang == 4) { // Ruby

for (i = 0; i==0||LANG_RV[i]; i++)

call_counter[LANG_RV[i]] = HOJ_MAX_LIMIT;

} else if (lang == 5) { // Bash

for (i = 0; i==0||LANG_BV[i]; i++)

call_counter[LANG_BV[i]] = HOJ_MAX_LIMIT;

} else if (lang == 6) { // Python

for (i = 0; i==0||LANG_YV[i]; i++)

call_counter[LANG_YV[i]] = HOJ_MAX_LIMIT;

} else if (lang == 7) { // php

for (i = 0; i==0||LANG_PHV[i]; i++)

call_counter[LANG_PHV[i]] = HOJ_MAX_LIMIT;

} else if (lang == 8) { // perl

for (i = 0; i==0||LANG_PLV[i]; i++)

call_counter[LANG_PLV[i]] = HOJ_MAX_LIMIT;

} else if (lang == 9) { // mono c#

for (i = 0; i==0||LANG_CSV[i]; i++)

call_counter[LANG_CSV[i]] = HOJ_MAX_LIMIT;

} else if (lang == 10) { //objective c

for (i = 0; i==0||LANG_OV[i]; i++)

call_counter[LANG_OV[i]] = HOJ_MAX_LIMIT;

} else if (lang == 11) { //free basic

for (i = 0; i==0||LANG_BASICV[i]; i++)

call_counter[LANG_BASICV[i]] = HOJ_MAX_LIMIT;

} else if (lang == 12) { //scheme guile

for (i = 0; i==0||LANG_SV[i]; i++)

call_counter[LANG_SV[i]] = HOJ_MAX_LIMIT;

}

}

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值