求问,关于system函数结束进程的问题,麻烦大佬帮忙看看!

system("TASKKILL /F /IM text.exe");
这个应该是结束text.exe进程的,但是无论有没有text.exe这个进程,都提示成功并且还有pid的值。
要是自己运行cmd.exe,并执行TASKKILL /F /IM text.exe,确提示没有找到进程
这个是为什么,高手回答下。。 还有一个问题system 有返回值么?返回值为几时命令执行成功?可以用if判断么?

DIEA
浏览 472回答 2
2回答

红颜莎娜

system函数的返回值就是它执行程序的返回值一般情况下0表示没错返回-1表示出错你直接检查system的返回值好了int ret = system("TASKKILL /F /IM text.exe");if(ret == -1) { /*出错*/ }

一只萌萌小番薯

system函数是通过cmd.exe来执行命令的因此无论taskkill是否成功,只要cmd.exe成功启动并结束,system就会返回成功因此要想获得taskkill是否成功,得用CreateProcess函数才行system返回整数,成功是返回0,其他则表示有问题但是这个成功是指执行cmd成功,并不一定指taskkill成功但是对于cmd中间自带的命令,system是可以获取相关命令的成功与否的比如dir del 等等
打开App,查看更多内容
随时随地看视频慕课网APP