【问题标题】:online c compiler for android安卓在线c编译器
【发布时间】:2012-07-17 10:15:06
【问题描述】:

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

这就是想法:

  1. 我将有一个带有编译器的服务器,它将接受来自客户端的代码,编译它然后执行它。结果将被发送回客户端。

  2. 客户端可以使用我的安卓应用程序或桌面浏览器输入代码并发送给服务器。

  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.   
}

我的问题是我怎样才能做到这一点。? 我将不得不让程序在服务器上执行并通过编码将其输入流连接到客户端。

用户可以像在本地机器上执行的程序一样输入输入。

有什么想法吗?

【问题讨论】:

  • 你的问题和stackoverflow.com/questions/11502534/…很相似;对于输入部分,您只需要在服务器上使用管道(并将服务器代码写入管道)。
  • 您的一系列问题似乎有一个共同的主题——“我想做某事,但我完全不知道如何去做。”这确实应该是您应该选择其他事情做的线索。
  • @DavidSchwartz:我完全不同意。他要做的是更多地研究工具和技术来做到这一点。有了“我对此没有任何想法,最好选择别的”,我们仍然生活在石器时代。
  • @m0skit0 实际上,进步是由选择做其他事情的人取得的。在石器时代,我们不是通过制造飞机来获得飞机的。在石器时代制造飞机的努力将在很大程度上白费,也许会意外取得一些进展。

标签: c compiler-construction


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多