【发布时间】:2012-03-22 01:55:14
【问题描述】:
我有一系列 cpp 源文件,如果它们可以正确运行,我想编写另一个程序给 JUDGE(提供输入并将它们的输出与标准输出进行比较)。那么如何:
- 调用/生成另一个程序,并提供一个文件作为其标准输入
- 限制子进程的时间和内存(可能是setrlimit的东西?有例子吗?)
- 不要让进程读/写任何文件
- 使用文件作为其标准输出
- 将输出与标准输出进行比较。
我认为第二和第三是这个问题的核心部分。有没有办法做到这一点?
ps。系统是Linux
【问题讨论】:
-
您可能可以使用 shell 脚本来完成所有这些工作,无需使用 C++ 打败自己即可完成工作。
./program <input.txt >output.txt; if cmp output.txt known-good.txt; then echo "yay"; fi -
每个要点应该是一个不同的问题。你一次问了太多不同的事情。
-
有这方面的例子吗?如何使用 shell 脚本限制进程资源?
-
请参阅
ulimit的文档了解如何限制资源消耗。