我有一个C++程序,我想从中执行shell中的多个命令。 我目前的解决方案使用system()函数,看起来像这样:C++在shell中执行许多命令
return_value = system(SETUP_ENVIRONMENT; RUN_USEFUL_APP_1);
... do_something_else ...
return_value = system(SETUP_ENVIRONMENT; RUN_USEFUL_APP_2);
... do_something_else ...
return_value = system(SETUP_ENVIRONMENT; RUN_USEFUL_APP_3);
...
它的工作原理,但SETUP_ENVIRONMENT需要几秒钟的制作程序很慢。但是我必须每次都运行它,因为system()每次都在新的shell中运行。 我希望能够安装我的shell一次,然后运行其中的所有命令。
execute_in_shell(SETUP_ENVIRONMENT);
return_value = execute_in_shell(RUN_USEFUL_APP_1);
... do_something_else ...
return_value = execute_in_shell(RUN_USEFUL_APP_2);
... do_something_else ...
return_value = execute_in_shell(RUN_USEFUL_APP_3);
...
我该怎么做?
我在Linux上。
您可以在管道中打开一个shell并通过它发送命令。 –
http://stackoverflow.com/questions/245600/using-a-single-system-call-to-execute-multiple-commands-in-c – mstruebing
@mstruebing:这假设你知道哪些程序运行,何时,以及哪些参数。管道是更好的解决方案。 – MSalters