[oj维护日记]HUSTOJ添加系统调用
2015-05-25 18:43
381 查看
有时候碰到运行错误会弹出类似“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"这个元素即可,然后保存退出。如下图所示
4. 回到core的前一个目录:cd /home/yybird/hustoj/hustoj-read-only/
5. 执行make.sh:sudo bash make.sh
6. 重判对应的题目或者提交序号,即可看到结果了(注意若漏了第4步和第5步是不会有效果的)
这样的错误,原因是因为编号为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"这个元素即可,然后保存退出。如下图所示
4. 回到core的前一个目录:cd /home/yybird/hustoj/hustoj-read-only/
5. 执行make.sh:sudo bash make.sh
6. 重判对应的题目或者提交序号,即可看到结果了(注意若漏了第4步和第5步是不会有效果的)
相关文章推荐
- [oj维护日记]HUSTOJ添加已支持的语言
- [oj维护日记]LiveCD版HUSTOJ迁移至Ubuntu 15.04试验
- 向linux内核中添加三个系统调用(Ubuntu9.10)
- 【Linux编译内核】Linux添加系统调用
- 驱动模块的编写##向内核添加系统调用函数
- 【操作系统】添加系统调用
- 【转】CentOS 5.4 添加系统调用函数 及 内核编译
- 添加Linux系统调用
- Android添加自己的系统属性(反射调用SystemProperties)
- 怎么在Linux中添加新的系统调用
- Linux操作系统分析(4)- 更新内核与添加系统调用
- 小胖说事----------调用系统日历,显示某一个时间并且弹出系统日历的添加事件页面
- 调用系统图库,添加自定义字体,屏幕截图
- ubuntu12.04内核升级与添加系统调用(貌似是科大某人写的。。SA)
- 用内核模块的方式为系统添加一个系统调用
- 如何给MIPS架构的kernel添加系统调用
- 利用模块添加系统调用(不重新编译内核)
- 添加系统调用的方法,2.6.35(没有测试)
- Linux添加系统调用
- 如何在Linux 4.12内核添加系统调用