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

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

一只萌萌小番薯
TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
system函數(shù)是通過cmd.exe來執(zhí)行命令的
因此無論taskkill是否成功,只要cmd.exe成功啟動(dòng)并結(jié)束,system就會(huì)返回成功
因此要想獲得taskkill是否成功,得用CreateProcess函數(shù)才行
system返回整數(shù),成功是返回0,其他則表示有問題
但是這個(gè)成功是指執(zhí)行cmd成功,并不一定指taskkill成功
但是對于cmd中間自帶的命令,system是可以獲取相關(guān)命令的成功與否的
比如dir del 等等
添加回答
舉報(bào)
0/150
提交
取消