朋友们,我是一名学位学生,并且正在考虑使用在线c编译器作为我的最后一年项目,就像键盘和键盘一样。 ideone。
所以这就是这个想法:
我将有一个带编译器的服务器,它将接受来自客户端的代码,编译它然后执行它。结果将被发送回客户。
客户端可以使用我的Android应用程序或桌面浏览器输入代码并将代码发送到服务器。
当然,沙盒和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.
}
我的问题是如何实现这一目标。 我将不得不在服务器上执行程序,并通过编码将其输入流连接到客户端。
用户可以输入输入,就像他可以输入在本地计算机上执行的程序一样。
所有想法?
答案 0 :(得分:1)
对于您正在运行的每个用户程序,还有一个启动它的管理器程序并处理与用户的通信。让经理程序创建两个管道,一个是程序的输入,另一个是程序的输出。 (如果你想单独处理错误输出,可以选择三个。)
当您从用户那里获取需要转到用户正在运行的程序的信息时,可以通过您喜欢的任何机制将其交给管理员进程。然后,管理器进程可以在连接到用户进程标准输入的管道上发送它。当管理器看到管道上的数据挂钩到用户进程的标准输出时,请将它放在某个地方,与用户通信的代码可以将其发送给用户。