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

void main(){

    exit(0);

}

これは、c の私のコードです。どうすればコンソールを終了できますか??exit 関数を使用しようとしましたが、機能しないようです

4

7 に答える 7

2

で親アプリケーションを閉じることはできませんexitExitあなたのプログラムだけを終了させます。

親アプリケーションを終了する場合:

  • Kill(2)UNIX システムでは、と組み合わせて使用​​できますgetppid(2)

  • Windowsでは、でそれを達成できますTerminateProcessGetParentProcessの方法の例を次に示します。しかし、Windowsでは、できるかどうかわかりません。親プロセスを強制終了する権利はないと思います。ここを見てください:http://msdn.microsoft.com/en-us/library/windows/desktop/ms684880(v=vs.85).aspx

    Windowsプロセスを終了する権限を取得できるようです:

    このナレッジベースの記事では、その方法について説明しています。最初SeDebugPrivilege()に を呼び出してプロセスを終了する権限を取得OpenProcess()し、PROCESS_TERMINATEフラグを指定して呼び出して終了するプロセスのハンドルを取得し、最後に を呼び出しTerminateProcess()てプロセスを終了します。

    編集: [システムがサブシェルを起動するため機能しません]systemを呼び出すだけで実現できるようですsystem("exit");

于 2013-07-14T16:45:33.753 に答える
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_(コマンド)

于 2014-04-12T16:51:29.860 に答える
0

スレッドを追跡することはできませんが、何年も前に、usenet フォーラムでこの質問に提案して答えようとしましたsystem("exit")(もちろんうまくいきません)。しかし、当時 (1990 年代半ば) の正解は、ソフトウェア割り込みを送信して再起動することでした。プロテクト モードの DOS (Windows ウィンドウでの Dos) は、それを傍受してウィンドウを閉じます。

exit で常にプログラムを終了する場合は、ショートカット プロパティを編集できます。

于 2013-07-14T16:18:02.603 に答える