2015-11-16 60 views
2

我正在編寫一個使用來自終端的流數據的程序。 如果你感興趣下面的命令:x秒後停止系統調用cpp

system("candump slcan0 > sources/file.txt"). 

我希望系統運行x秒該命令。 但系統調用的正常停止會很好,我會寫一些代碼,將在x秒後執行停止。

該程序將處理這些數據,因此退出(EXIT_SUCCESS)將無濟於事。這樣可以讓整個程序停止,而不僅僅是系統調用。

回答

1

而不是使用system(),使用fork()和exec()。 fork()會給你子進程的PID。

在這一點上有幾種相當標準的方法來等待子進程退出一段時間。如果沒有,SIGKILL子進程。在UNIX/POSIX的大多數書籍中應該有很多例子。

+0

感謝您的回答。這解決了我的問題。 我想爲正在查找此主題的人員添加內容,以便讓輸出工作:「> sources/files.txt」部分。我不得不看看[this](http://stackoverflow.com/questions/20488574/output-redirection-using-fork-and-execl)stackoverflow頁面。 – Kenavera