如果要求用户输入,如何终止我的脚本

时间:2018-02-19 14:15:07

标签: linux bash

我一直在尝试在我的网站上实现一个ide。 就像我想要运行这个程序一样:

/* add c headers if necessary*/
#include <stdio.h>
/* Include other headers as needed */
int main()
{

/* Enter your code here. Read input from STDIN. Print output to STDOUT */
int a,b;
scanf("%d%d",&a,&b); // requires user input
return 0;
}

该程序将使用某些脚本在我的Linux服务器上执行。

由于此程序需要用户输入,我已向用户提供了一个文本框以提供该输入。然后,我将该输入保存在我后端的某个文件中,并通过该文件提供给我的程序,相应的结果显示在我的网页上。

但现在我希望用户逐个输入。

为此我需要抓住它需要通过我的脚本输入然后我将终止我的脚本并发送响应给用户输入.... 然后将该输入提供给程序,如果再次需要输入,则再次执行相同操作。

如果不清楚,请问......

1 个答案:

答案 0 :(得分:1)

非常similar question没有令人满意的答案。

也许你可以从不同的角度解决问题。而不是

  • 仅在程序停止时发送程序的输出
  • 仅在程序要求输入时询问用户输入

您可以立即发送输出和输入。在终端中,用户始终可以键入。模拟您网站上的行为。

  • 一旦打印出内容,就会逐步发送程序的输出
  • 用户始终可以输入输入。只要用户输入内容,该输入就会发送到服务器。

立即发送内容应该是可行的。有些网站会立即发送输入和输出,例如像this one这样的etherpads(尝试在同一时间和网站上打开普通和私人浏览器窗口)。

在您的服务器上,您可以将用户的输入和程序输出存储在两个临时文件中。对于一个会话,您可以运行类似以下脚本的内容

# skeleton of the server script
compile program.c
createEmptyFiles input output
tail -f input | ./program > output

此外,您需要将用户的输入提供给input,并将程序的输出发送给用户。