に私はgccで自分のコードをコンパイルC. にシステムを追加できません( "exit")。 C
system("exit");
で私のプログラムを終了し、端子を介してそれを実行したいと思います。しかし、どういうわけか、プログラムは終了するためにシステムへの呼び出しを実行しませんでした。なぜそれが起こったのですか?私はsystem("clear")
をした場合、それがスムーズに
に私はgccで自分のコードをコンパイルC. にシステムを追加できません( "exit")。 C
system("exit");
で私のプログラムを終了し、端子を介してそれを実行したいと思います。しかし、どういうわけか、プログラムは終了するためにシステムへの呼び出しを実行しませんでした。なぜそれが起こったのですか?私はsystem("clear")
をした場合、それがスムーズに
存在しない、system()
はシェルを起動し、コマンドを実行します。 exit
はシェルを終了します。期待される結果は何も起こらないことでしょう。あなたはどのような結果を得ましたか?私はあなたが何をしたいと思います
は次のとおりです。
#include <stdlib.h>
exit(EXIT_SUCCESS);
を働くのであなただけ行う必要があります。一番上にも
exit(0);
は、置く:
#include <stdlib.h>
出口は、Cライブラリの呼び出しだ、シェルコマンドの呼び出しではありません。だから、シェルは終了しますが、プログラムは終了しません。試してください:
exit(0);
必要なエラーコードで終了してください。 system
機能は、単にコマンドインタプリタに引数を渡すので、
system("exit")
これは、あなたが単に新しいシェルを作成し、すぐに終了し、それを言っている意味(私はほとんどのシステムでsh
と思う?)、何を達成することはありません。
EDIT:あなたのプログラムを終了させることを意図している場合は、stdlib.hヘッダーにあるexit
関数を使用してください。
プログラムを終了するには、exit()
コールが必要です。 exit()
関数は、通常のプロセス終了を引き起こします。 exit()
の引数としてEXIT_SUCCESS
またはEXIT_FAILURE
を使用すると、0
を使用し、1
やなどの非ゼロの値を使用するよりも移植性が向上します。 exit()
関数を使用するには、#include <stdlib.h>
が必要です。 exit()
上
詳しい情報はman 3 exit
を使用して見つけることができ、あなたのコード行を貼り付けることができますか? – iyasar
@ YasarIslam私は申し訳ありませんが、私はちょうどこのスニペットが欲しいので、非常に長いです:) – giripp
C11は 'gets'を削除したのと同時に' system'を本当に削除しなければなりません。安全に使用することは、まったく役に立たず、ほとんど不可能です。 –