评分程序 - 在C ++中编译/执行C ++代码

时间:2011-02-27 02:40:56

标签: c++

我正在编写一个程序来评估学生提交的C ++代码。现在它使用系统调用来编译每个源文件,然后将输入重定向到文件并在进程中调用新的可执行文件,并在输出中搜索某些字符串。这也允许我对崩溃的程序的进程超时。

有没有比系统调用更好的方法呢?或者更好的方法来做到这一点?

2 个答案:

答案 0 :(得分:2)

您可能希望在备用帐户下运行程序,例如使用基于密钥的身份验证的ssh是切换到虚拟帐户的好方法。

如果任何分配需要用户互动,那么expect(基于Tcl)将是一个不错的选择。

答案 1 :(得分:0)

我无法想到在C / C ++中以其他方式运行外部可执行文件而不使用系统调用(直接或间接)。

您可以考虑使用Perl / Python而不是编写C ++来进行此类检查/自动化。

编辑:

自从您在Perl中开始编写脚本以来,您可能需要查看:

http://perldoc.perl.org/functions/exec.html

http://perldoc.perl.org/Shell.html

http://perldoc.perl.org/functions/system.html

http://www.perlmonks.org/?node_id=78523

How can I run a system command in Perl asynchronously?

How can I terminate a system command with alarm in Perl?