3

C++プログラムを採点する方法を探しています。

標準の入出力パスを持つ多数のプログラムを実行できるようにしたいので、各プログラムは適切なタイミングで情報を出力および入力する必要があります。

これを行うための最良の方法は何ですか?fork()を呼び出すC ++プログラムを作成すると言う人もいますが、それについての私の質問は、同じ入力画面と出力画面をどのように操作するかということです。(言い換えると、そのプロセスをフォークしたら、そのプロセスの入力をフィードしてその出力を表示できますか?)perlスクリプトの方がうまく機能しますか?

もしそうなら、perlスクリプトの数行とそれがどのように見えるかを教えてください。

4

1 に答える 1

1

プログラムを開き、そのstdinおよびstdoutと対話するには、Posixpopenまたはopen3を使用する必要があります。これはどの言語でも実行できるはずです。個人的には、Rubyとrspecを使用してグレーディングを行います。

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

制限された権限を持つユーザーとして学生のコードを実行し、chrootjailを使用してください。

于 2012-05-19T16:05:13.737 に答える