C 庫 - exit() 函式



C 的stdlibexit() 函式允許我們立即終止或退出呼叫程序。exit() 函式關閉屬於程序的所有開啟的檔案描述符,並且程序的任何子程序都將由程序 1(init)繼承,並且程序父程序將收到 SIGCHLD 訊號。

“SIGCHLD”訊號用於管理子程序,允許父程序處理其終止並收集退出狀態。

語法

以下是exit() 函式的 C 庫語法 -

void exit(int status)

引數

此函式接受一個引數 -

  • status - 它表示返回給父程序的狀態值或退出程式碼。

  • 0 或 EXIT_SUCCESS:0 或 EXIT_SUCCESS 表示程式已成功執行,未遇到任何錯誤。
  • 1 或 EXIT_FAILURE:1 或 EXIT_FAILURE 表示程式遇到錯誤,無法成功執行。

返回值

此函式不返回值。

示例 1:帶有狀態“EXIT_FAILURE”的 exit()

讓我們建立一個基本的 c 程式來演示 exit() 函式的使用。

#include <stdio.h>
#include <stdlib.h>
int main() {
   FILE *fp;

   printf("Opening the tutorialspoint.txt\n");
   // open the file in read mode
   fp = fopen("tutorialspoint.txt", "r");
   
   if (fp == NULL) {
      printf("Error opening file\n");
      // Terminate the program with an error code
      exit(EXIT_FAILURE);
   }
   fclose(fp);
   // Terminate the program successfully
   exit(EXIT_SUCCESS);
}

輸出

以下是輸出 -

Open the tutorialspoint.txt
Error opening file

示例 2

在此示例中,我們使用exit() 函式在 'i' 達到 5 時立即終止程序。

#include <stdio.h> 
#include <stdlib.h>
int main(){
   // print number from 0 to 5
   int i;
   for(i=0;i<=7;i++){
      // if i is equals to 5 then terminates
      if(i==5){
         exit(0);
      }	     
      else{
         printf("%d\n",i);
      }         
   }
   return 0;
}

輸出

以下是輸出 -

0
1
2
3
4

示例 3

這是一個獲取使用者詳細資訊的另一個程式。如果使用者詳細資訊與 if 條件匹配,則 'exit(EXIT_SUCCESS)' 將起作用。否則 'exit(EXIT_FAILURE)'。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
   const char *username = "tutorialspoint";
   const char *password = "tp1234";

   // Check the credentials
   if (strcmp(username, "tutorialspoint") == 0 && strcmp(password, "tp1234") == 0){
      printf("Login successful!\n");
      // if user details match exit
      exit(EXIT_SUCCESS); 
   } else {
      fprintf(stderr, "Invalid credentials!\n");
      // if user details not match exit
      exit(EXIT_FAILURE); 
   }
   return 0;
}

輸出

以下是輸出 -

Login successful!
廣告