我正在组织一场编程比赛。我需要创建一个程序来逐个字符地检查另一个程序(参与者的可执行文件)的输出。要求是:
- 程序必须是
platform independent
. - 参与者不能获得输入和正确的输出。参与者所做的只是将他的程序名称传递给检查器。检查器告诉答案是否正确,就是这样。
- 参与者程序的输出不得显示给参与者本人 - 否则他可能会据此计算输入。
对于第二部分,是否可以以某种方式将输入和输出存储在可执行文件本身中?我宁愿不从加密文件中读取..这让事情有点不方便..
该程序应该像这样工作:
checker.exe question1.exe
正确答案,恭喜!
请把这个给志愿者看。
我尝试使用标准 C 库中的popen
和pclose
函数。
但问题是,在 Linux 中,它会打开一个 shell,显示参与者程序的输出,根据第三个要求,这不应该发生。
有什么简单的方法可以做到这一点?提前致谢。
编辑:
我需要将针对每个问题制作的可执行文件专门交给参与者。