我有一個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