我有一個非常具體的問題,在無數次搜索後我無法找到答案。我有一個Linux程序。當它通過網絡接收到特定消息時,它的工作是啓動另一個輔助可執行文件(通過fork()
和exec()
)。我無權修改輔助可執行文件。使用fork和exec啓動進程,同時將stdout重定向到/ dev/null
我的程序將所有的TTY打印到標準輸出,我通常通過./program > output.tty
啓動它。我遇到的問題是第二個可執行文件非常冗長。它同時打印到標準輸出,同時也將相同的TTY放入日誌文件中。所以我的output.tty
文件最終包含兩個輸出流。
我該如何設置,使輔助可執行文件的TTY被重定向到/dev/null
?我無法使用system()
,因爲我無法等待子進程。我需要能夠開火併忘記。
謝謝。
'exec()'一個調用程序並重定向它的輸出的shell。 –
你不能在'exec()'中使用'>'重定向操作符作爲參數嗎? – SkrewEverything
@SkrewEverything號重定向操作符由shell解釋。 –