1

こんにちは、私は学士課程の学生で、コードパッドやイデオンと同じように、最終年度のプロジェクトとしてオンライン C コンパイラを考えています。

これがアイデアです:

  1. クライアントからコードを受け取り、コンパイルして実行するコンパイラを備えたサーバーを用意します。の結果がクライアントに返されます。

  2. クライアントは、Android アプリケーションまたはデスクトップ ブラウザーを使用してコードを入力し、サーバーに送信できます。

  3. もちろん、サンドボックスや chrootjail などの手法で対処できるセキュリティ上の問題もあります。

私の質問は、実行中のプログラムの入力ストリームをユーザー入力 (ブラウザまたは Android アプリケーション インターフェイス) に接続したいということです。プログラムの実行中に入力を入力できるようにします。

例 :

void main()
{
int i;
printf("\n\n\t Enter  i's value : ");
scanf("%d",&i); 
// Here the program should wait till the user type input in browser or app. and then it should proceed.   
}

私の質問は、どうすればこれを達成できるかです。プログラムをサーバー上で実行し、コーディングによってその入力ストリームをクライアントに接続する必要があります。

ユーザーは、自分のローカル マシンで実行されているプログラムに入力できるのと同じように、入力を入力できます。

アイデアはありますか?

4

1 に答える 1

1

実行しているすべてのユーザー プログラムに対して、それを起動してユーザーとの通信を処理するマネージャー プログラムも用意します。マネージャ プログラムに 2 つのパイプを作成させます。1 つがプログラムの入力になり、もう 1 つがプログラムの出力になります。(または、エラー出力を個別に処理する場合は 3 つ)。

ユーザーの実行中のプログラムに必要な情報をユーザーから取得したら、任意のメカニズムでマネージャー プロセスに渡します。その後、マネージャー プロセスは、ユーザー プロセスの標準入力に接続されたパイプでそれを送信できます。マネージャーがユーザー プロセスの標準出力にフックされたパイプ上のデータを確認したら、ユーザーと通信するコードがユーザーに送信できる場所にデータを配置します。

于 2012-07-17T10:22:03.787 に答える