我的情况需要一些帮助。我想执行终端并获得结果。到目前为止我已经完成了,但是我想在获得结果后做一些其他的命令。我的问题是,每当我执行一个命令时,控制台重新启动,我不知道如何在一个活跃的prozess中写。
我这样做了:
...
boolean result = GLU.gluProject((float) (x), (float) y, (float) (z), modelView, projection, viewport, screenCoords);
if (result && screenCoords.get(2) < 0) {
return new int[] { (int) screenCoords.get(0), (int) screenCoords.get(1)};
}
return null;
我想&#34;发送&#34;同一进程中的另一个命令。我怎么能这样做?
答案 0 :(得分:0)
假设我理解你的问题和评论。听起来您希望程序在循环中运行,直到用户选择关闭它。你会想要这样的东西:
bool keepProgramOpen = true;
public void main()
{
while(keepProgramOpen)
{
printf("Choose and option\n");
printf("Option 1: press 1\n");
printf("Option 2: press 2\n"); //etc
char result = getchar();
switch result
{
//code to select which option was picked
case 1:
fileFunction();
break;
case 2:
someOtherFunction();
break;
case 3:
closeProgram(); //set keepProgramOpen false in here to end program
break;
//etc
}
}
}
fileFunction()
{
FILE *fp = popen(r.c_str(),"r");
char buf[2560];
while (fgets(buf, 2560, fp))
{
s->SendLine(buf);
}
fclose(fp);
}
答案 1 :(得分:-1)
我认为在fclose(fp)
之前使用r2
作为
fputs(r2.c_str(),fp)