Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語のexit()関数とは?使い方と終了コードの意味を解説

exit()関数とは

exit()関数は、C言語の標準ライブラリ関数の一つで、プログラム全体を即座に終了させるために使用されます。switch文やdo-while文などのループ処理から抜け出す目的で使われることもありますが、その実態は「break文」とは異なり、プログラムの実行をその場で打ち切り、制御をオペレーティングシステム(OS)へ返すものです。

exit()関数の一般的な形式は以下のとおりです。

void exit(int code);

引数 code には終了ステータス(終了コード)を指定します。この値はOSを介して呼び出し元のプロセスに返されます。一般的な慣例として、0はプログラムの正常終了を示し、0以外の値はエラーなどによる異常終了を表すために使われます。また、exit()関数を使用する際は、ヘッダーファイル <stdlib.h> をインクルードしておく必要があります。

サンプルプログラム

次のCプログラムは、メニュー選択処理の中で exit()関数 を使用する例です。「E」が入力されると、プログラムは即座に終了します。

#include<stdio.h>
#include<stdlib.h>
void main(){
    char ch;
    printf("B: Breakfast\n");
    printf("L: Lunch\n");
    printf("D: Dinner\n");
    printf("E: Exit\n");
    printf("Enter your choice:");
    do{
        ch = getchar();
        switch (ch){
            case 'B' :
            printf ("time for breakfast");
            break;
            case 'L' :
            printf ("time for lunch");
            break;
            case 'D' :
            printf ("time for dinner");
            break;
            case 'E' :
            exit(0); /* オペレーティングシステムに制御を返す */
        }
    } while (ch != 'B' && ch != 'L' && ch != 'D');
    return 0;
}

このプログラムでは、ユーザーが「B」「L」「D」のいずれかを入力すると対応するメッセージが表示されてループが終了しますが、「E」を入力した場合は exit(0) が呼ばれ、その場でプログラム全体が終了します。

実行結果

上記のプログラムを実行すると、次のような結果が出力されます。

B: Breakfast
L: Lunch
D: Dinner
E: Exit
Enter your choice:D
Time for dinner

ポイントまとめ

  • exit()関数は、プログラム全体を即座に終了させ、制御をOSに返す
  • 引数の終了コードは、OSを介して呼び出し元のプロセスに渡される
  • 0は正常終了、0以外は異常終了を示すのが一般的な慣例
  • 使用する場合は <stdlib.h> のインクルードが必要
  1. C言語のstrcmp()関数とは?文字列比較の基本と使い方を徹底解説

    C言語の標準ライブラリ関数 int strcmp(const char *str1, const char *str2) は、ポインタ str1 が指し示す文字列と、str2 が指し示す文字列を比較するための関数です。C言語において、文字型の配列は「文字列」と呼ばれます。まずは文字列の基本的な扱い方から確認していきましょう。文字列の宣言文字列(文字配列)の宣言は以下のように行います。char stringname [size];例えば、char string[50]; と宣言すれば、最大50文字の長さを持つ文字列を格納できます。文字列の初期化文字列の初期化には、主に次の2つの方法があります。1

  2. C言語のstrcpy()関数とは?基本構文と使い方をわかりやすく解説

    C言語のライブラリ関数 char *strcpy(char *dest, const char *src) は、src が指し示す文字列を dest にコピーするための関数です。 C言語では、文字の配列のことを「文字列」と呼びます。 文字列の宣言 文字列(文字配列)の宣言は、以下の形式で行います。 char stringname[size]; 例えば char string[50]; と宣言すると、最大50文字の文字列を格納できる配列が確保されます。 文字列の初期化 文字列の初期化には、主に以下の2つの方法があります。 1. 文字定数を使う方法 char string[10] = {H,