c语言 system函数结束进程问题

system("TASKKILL/F/IMtext.exe");这个应该是结束text.exe进程的,但是无论有没有text.exe这个进程,都提示成功并且还有pid的值... system("TASKKILL /F /IM text.exe");
这个应该是结束text.exe进程的,但是无论有没有text.exe这个进程,都提示成功并且还有pid的值。
要是自己运行cmd.exe,并执行TASKKILL /F /IM text.exe,确提示没有找到进程
这个是为什么,高手回答下。。 还有一个问题system 有返回值么?返回值为几时命令执行成功?可以用if判断么?
展开
 我来答
传薪网络
推荐于2018-04-21 · TA获得超过1355个赞
知道小有建树答主
回答量:635
采纳率:92%
帮助的人:242万
展开全部
  system函数是通过cmd.exe来执行命令的
  因此无论taskkill是否成功,只要cmd.exe成功启动并结束,system就会返回成功
  因此要想获得taskkill是否成功,得用CreateProcess函数才行
  system返回整数,成功是返回0,其他则表示有问题
  但是这个成功是指执行cmd成功,并不一定指taskkill成功
  但是对于cmd中间自带的命令,system是可以获取相关命令的成功与否的
  比如dir del 等等
匿名用户
2013-05-11
展开全部
system函数的返回值就是它执行程序的返回值
一般情况下0表示没错
返回-1表示出错

你直接检查system的返回值好了
int ret = system("TASKKILL /F /IM text.exe");
if(ret == -1) { /*出错*/ }

参考msdn来的:
http://msdn.microsoft.com/en-us/library/277bwbdz%28VS.71%29.aspx

c标准对这个函数的返回值并未定义,所以上面的说法是ms的方言,在其他平台上可能不是这样
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-11
展开全部
根据ANSI C规范,system返回值为int类型。成功调用时返回0,否则返回-1。system返回值可以用if判断。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
弓罗明融
2019-05-20 · TA获得超过3886个赞
知道大有可为答主
回答量:3142
采纳率:29%
帮助的人:242万
展开全部
不会吧?!
如果找不到对应的进程,TASKKILL会输出提示信息的.更不会返回PID
有一种可能就是,在运行程序时已经结束你的TEXT.EXE进程
了,之后再去运行这条指令当然会提示没有找到.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式