2013-07-10 177 views
0

我使用system()來打開和關閉與我的代碼進行通信的外部程序。但是,每次使用system()函數時,如果我從普通的終端/ shell調用該程序,我都會得到控制檯輸出,例如,每次我打電話system(killall [program] &)我得到一個終止消息。有沒有辦法抑制這種類型的輸出?抑制系統()控制檯輸出

+3

重定向其輸出到'的/ dev/null',一如既往。 – Jon

+0

@Jon我已經在嘗試,但我仍然在控制檯上看到「Terminated」消息。 – joaocandre

回答

1
+0

問題是,使用'execlp'我有困難等待命令完成;我正在尋找的東西可以讓我開始第二個進程,與主程序並行運行,就像我用'system(「[program]&」)獲得的那樣' – joaocandre

+0

@joaocandre你應該使用[std ::螺紋](http://en.cppreference.com/w/cpp/thread/thread)。看到接受的答案[這裏](http://stackoverflow.com/questions/266168/simple-example-of-threading-in-c),把你的'execlp'放在'task1'中。這應該做的伎倆。 – dotixx

+0

顯然,使用'task1.join()'意味着等待'task1'完成,所以它不是我所期待的。 – joaocandre