3

我正在寻找一种对 C++ 程序进行评分的方法。

我希望能够执行许多具有标准输入/输出路径的程序,因此每个程序都需要在适当的时间输出和输入信息。

做这个的最好方式是什么?我看到有人说编写一个调用 fork() 的 C++ 程序,但我的问题是如何与相同的输入和输出屏幕交互?(换句话说,一旦你分叉了那个进程,你能提供那个进程的输入并查看它的输出吗?) perl 脚本会更好吗?

如果是这样,您能否给我几行 perl 脚本以及它的外观。

4

1 回答 1

1

您应该使用 Posix popen 或 open3 打开程序并与它的标准输入和标准输出交互。你应该可以用任何语言做到这一点;我个人会使用 Ruby 和 rspec 进行评分。

http://pubs.opengroup.org/onlinepubs/009604499/functions/popen.html

确保以具有受限权限的用户身份运行学生的代码并使用 chroot 监狱!

于 2012-05-19T16:05:13.737 回答