system("TASKKILL /F /IM text.exe");這個應該是結束text.exe進程的,但是無論有沒有text.exe這個進程,都提示成功并且還有pid的值。要是自己運行cmd.exe,并執行TASKKILL /F /IM text.exe,確提示沒有找到進程這個是為什么,高手回答下。。 還有一個問題system 有返回值么?返回值為幾時命令執行成功?可以用if判斷么?
2 回答

紅顏莎娜
TA貢獻1842條經驗 獲得超13個贊
system函數的返回值就是它執行程序的返回值
一般情況下0表示沒錯
返回-1表示出錯
你直接檢查system的返回值好了
int ret = system("TASKKILL /F /IM text.exe");
if(ret == -1) { /*出錯*/ }

一只萌萌小番薯
TA貢獻1795條經驗 獲得超7個贊
system函數是通過cmd.exe來執行命令的
因此無論taskkill是否成功,只要cmd.exe成功啟動并結束,system就會返回成功
因此要想獲得taskkill是否成功,得用CreateProcess函數才行
system返回整數,成功是返回0,其他則表示有問題
但是這個成功是指執行cmd成功,并不一定指taskkill成功
但是對于cmd中間自帶的命令,system是可以獲取相關命令的成功與否的
比如dir del 等等
添加回答
舉報
0/150
提交
取消