如何使用退出函数使c控制台程序退出?

时间:2013-07-14 15:55:55

标签: c

#include<stdio.h>
#include<stdlib.h>

void main(){

    exit(0);

}

这是我在c中的代码怎么能让控制台退出?我试图使用退出功能但看起来它不起作用

7 个答案:

答案 0 :(得分:3)

exit导致您的程序退出,而不是您运行它的shell。您的计划相当于:

int main(void)
{
  return 0;
}

您可能需要查看kill(2)

编辑说明:main应该返回int,而不是void

答案 1 :(得分:2)

您无法使用exit关闭父应用程序。 Exit只会导致您的程序退出。

如果要退出父应用程序:

答案 2 :(得分:1)

假设您尝试退出控制台,则启动了该过程,您必须获取父进程ID(getppid),然后发送kill信号。

在Windows中,您必须通过调用Process32First和Process32Next来复制getppid的行为。杀死变为TerminateProcess

答案 3 :(得分:0)

你不能......程序以exit(0)结束;将exitcode返回给调用者...通常是一个命令解释器shell ....它通常在终端内运行

如果终端中的程序终止,终端将关闭....你可以直接在终端内运行你的程序,或者使用shell只执行一个命令

答案 4 :(得分:0)

似乎无法追踪线程,但多年前我试图通过建议system("exit")在usenet论坛中回答这个问题(当然这不起作用) 。但当时(20世纪90年代中期)的正确答案是将软件中断发送到 reboot 。保护模式DOS(Windows窗口中的Dos)将拦截它并关闭窗口。

如果您希望程序始终在退出时关闭,则可以编辑快捷方式属性。

答案 5 :(得分:0)

#define _WIN32_WINNT 0x500
#include <windows.h>

...
PostMessage(GetConsoleWindow(), WM_CLOSE, 0, 0);

不确定这是否有效,但这是首先想到的。您可以改为将WM_CLOSE替换为WM_DESTROY。

答案 6 :(得分:0)

要退出控制台,您必须进行系统调用。它将是

#include <stdio.h>
#include <stdlib.h>

int main()
{
    system("taskkill/IM cb_console_runner.exe");
{

此处,cb_console_runner.exe是进程名称。

资源:http://en.wikipedia.org/wiki/Kill_(command)