我有一個C++ windows服務,當我調用system()函數來釋放命令時,它有時會崩潰。我已經在Windows命令行中運行了命令的確切文本,並且它運行得很好,但由於某種原因,它在system()運行時失敗。有沒有比用system()更好的在C++中提取命令的方法?
更糟糕的是,我似乎無法得到任何有關system()失敗原因的信息。似乎沒有提出異常,因爲我正在做一個捕捉(...),沒有任何東西被抓住。我的服務停止運行。我知道這是對system()的調用失敗,因爲我在調用之前和之後都放置了日誌信息,之後的任何事情都沒有記錄任何內容。
那麼,有沒有不同的方法可以剔除我的命令?至少,如果出現問題,某些事情會給我一些信息,或者至少讓我處理一個例外情況。
'exec'肯定會給你更多的控制過程。許多系統也具有'spawn'功能。 – 2010-10-30 20:51:35
不太可能,因爲它是Windows。更可能是CreateProcess或類似的。 – SimonJ 2010-10-30 20:53:05
Fork在Windows API中不存在。 – 2010-10-30 22:07:03