项目简介
本系统基于C语言开发,用于在线编程题目的评测、比较和分析,尤其适用于OI/ACM等编程竞赛的评测需求,能为用户提供资源限制、模块化架构、评测结果报告等功能,并保障评测过程的安全性。
项目的主要特性和功能
- 资源限制:运用rlimit、rusage和pthread等技术,对进程的时间、内存和输出大小等资源使用进行全面限制与监控。
- 模块化架构:采用模块化设计,易于扩展,支持传统题、交互题和任意命令的执行。
- 评测结果报告:提供详细的评测报告,涵盖运行时间、CPU使用情况、内存使用情况等信息。
- 安全性:借助沙箱机制确保评测过程安全,防止恶意代码损害系统。
- 可扩展性:支持自定义评测策略,管理员可按需设置不同评测规则。
安装使用步骤
- 环境准备:确保Linux系统已安装make(GNU Make)、flex(the fast lexical analyser generator)、ausyscall(a program that allows mapping syscall names and numbers)、clang系列命令、gengetopt。
- 编译项目:在项目根目录执行
make all
进行编译。 - (可选)安装为系统命令:执行
sudo make install
。 - 运行评测:使用
yaoj-judger
命令进行评测,具体使用方法可通过./yaoj-judger --detailed-help
查看。 - 自定义配置:根据需求修改评测策略和资源限制配置,配置文件位于
src/builtin_policy
目录。
注意事项
- 本项目仅支持在x86_64架构上运行。
- 编译时,链接库文件需注意顺序,通常将
-lyjudger
放在最前面。 - 更多使用方法和测试示例可参考
tests/
目录下的内容。
下载地址
点击下载 【提取码: 4003】