[转]HUSTOJ出现RuntimeError,正确姿势。

有时候碰到运行错误会弹出类似“Runtime Error:[ERROR] A Not allowed system call: runid:6376 callid:20 TO FIX THIS , ask admin to add the CALLID into corresponding LANG_XXV[] located at okcalls32/64.h ,and recompile judge_client” 这样的错误,原因是因为编号为20的系统调用不在系统调用许可内,在确保该代码没有进行危险操作的情况下,可通过添加合法系统调用解决这一问题。

操作步骤如下:

  1. 找到 core/judge_client 目录并进入,LiveCD版一般进入/home/ubuntu/fps/core/judge_client/ 目录,非LiveCD版的一般进入 /home/username/hustoj/hustoj-read-only/core/judge_client 目录(其中username为Ubuntu用户的用户名)。如:cd /home/yybird/hustoj/hustoj-read-only/core/judge_client

  2. 根据当前系统版本(LiveCD版的系统为32位系统)选择打开okcall32.h或okcall64.h。如:sudo gedit okcall64.h

  3. 根据发生运行错误的语言,找到对应的数组,并将对应的callid填进去。比如文章开头的那个错误是在用C++语言提交时产生的,于是乎找到LANG_CV数组(C与C++都是这个数组),在里面加入”20″这个元素即可,然后保存退出。如下图所示

或者看开发者自己写的博客 https://zhuanlan.zhihu.com/p/24498599

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值