无法添加系统(“退出”);用C
问题描述:
system("exit");
在C. 我编译我的代码用gcc退出我的程序,并通过终端运行它。但不知怎的,程序没有执行对系统的调用来退出。为什么会发生?因为如果我做了system("clear")
它工作顺利
答
在C,system()
启动一个外壳和执行命令。 exit
退出shell。预期的结果是什么都没有发生,你得到了什么结果?
我想你想要的是:
#include <stdlib.h>
exit(EXIT_SUCCESS);
答
你应该只是做:
exit(0);
而且在顶部放:
#include <stdlib.h>
答
退出不是一个shell命令调用,这是一个C库调用。所以它会退出shell,但不是程序。请尝试:
exit(0);
或退出时出现任何您想要的错误代码。
答
system("exit")
不会完成任何事情,因为system
功能只是手中的参数命令解释器(我认为sh
大多数系统?),这意味着你只需要创建一个新的外壳,然后告诉它立即退出。
编辑:正如其他人所说,如果意图是要使您的程序终止,请使用stdlib.h头文件中的exit
函数。
答
要退出程序,只需拨打exit()
即可。 exit()
函数会导致正常的进程终止。使用EXIT_SUCCESS
或EXIT_FAILURE
作为exit()
的参数比使用0
和一些非零值如1
或-1
稍微更便携(对于非Unix环境)。要使用exit()
功能,您需要#include <stdlib.h>
。
exit()
更多信息可以使用man 3 exit
你能粘贴您的代码行中找到? – iyasar 2012-01-10 17:15:30
@YasarIslam对不起,我很抱歉,这很长,因为我只想要这个片段:) – giripp 2012-01-10 17:18:40
C11应该在删除'gets'的同时删除'system'。这同样没用,几乎不可能安全使用。 – 2012-01-10 18:14:18