1

嗨朋友们,我是一名学位学生,正在考虑将在线 c 编译器作为我的最后一年项目,就像 codepad 和 ideone 一样。

所以这就是想法:

  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

对于您正在运行的每个用户程序,还有一个管理器程序可以启动它并处理它与用户的通信。让管理程序创建两个管道,一个是程序的输入,另一个是程序的输出。(如果您想单独处理错误输出,则为三个。)

当你从用户那里得到需要去用户正在运行的程序的信息时,通过你喜欢的任何机制将它交给管理器进程。然后,管理器进程可以在连接到用户进程的标准输入的管道上发送它。当管理器在管道上看到与用户进程的标准输出挂钩的数据时,将其放在与用户通信的代码可以将其发送给用户的某个地方。

于 2012-07-17T10:22:03.787 回答