簡體   English   中英

如果我的腳本要求用戶輸入,如何終止它

[英]How to terminate my script if it asks for user input

我一直在嘗試在我的網站上實現一個 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 服務器上執行。

由於此程序需要用戶輸入,因此我向用戶提供了一個文本框以提供該輸入。 然后,我將該輸入保存在后端的某個文件中,並通過該文件將其提供給我的程序,相應的結果顯示在我的網頁上。

但現在我希望用戶一一輸入。

為此,我需要在需要通過我的腳本輸入時進行捕捉,然后我將終止我的腳本並向用戶發送該輸入的響應......然后將該輸入提供給程序,如果再次需要某些輸入,則再次執行相同操作.

有不清楚的請追問...

有一個非常相似的問題,但沒有令人滿意的答案。

也許你可以從不同的角度來解決這個問題。 代替

  • 僅在程序停止時發送程序的輸出
  • 僅在程序要求輸入時才要求用戶輸入

您可以立即發送輸出和輸入。 在終端中,用戶始終可以輸入。 在您的網站上模擬該行為。

  • 一旦打印出一些東西,就以增量方式發送程序的輸出
  • 用戶可以隨時輸入。 一旦用戶鍵入內容,該輸入就會發送到服務器。

立即發送東西應該是可行的。 有些網站會立即發送輸入和輸出,例如像這樣的etherpad(嘗試在同一時間和站點打開一個普通和一個私人瀏覽器窗口)。

在您的服務器上,您可以將用戶的輸入和程序的輸出存儲在兩個臨時文件中。 對於一個會話,您可以運行類似於以下腳本的內容

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

此外,您需要將用戶的輸入提供給input並將程序的輸出發送給用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM