0
我每5分鐘在C++中執行system()函數。它在一段時間內工作正常,並且由於ECHILD錯誤而返回-1失敗。爲什麼有時會發生這個問題?爲了避免這種情況,我將SIGCHLD設置爲SIG_DFL,之後它工作正常。但是在程序中有一個用於其他功能的SIGCHLD處理程序。將SIGCHLD設置爲SIG_DFL對其他函數有影響嗎?C++中的system()函數在一段時間內工作正常,並且由於ECHILD錯誤而無法返回-1。爲什麼?
歡迎來到Stack Overflow。請儘快閱讀[關於]頁面。如果其他代碼依賴於SIGCHLD的處理程序,並且您將其抑制,那麼可能會出現問題。目前還不清楚在system()調用期間你甚至可以將SIGCHLD處理設置爲SIG_DFL;信號可能在功能執行時到達。 –
在失敗的情況下,命令是否實際執行?或者在命令執行之前失敗? – Gabe
在執行該命令期間,SIGCHLD將被阻止 –