Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ฟังก์ชัน exit() vs _Exit() ใน C และ C++


ในส่วนนี้ เราจะมาดูความแตกต่างระหว่าง exit() และ _Exit() ใน Cand C++ ในภาษาซี exit() จะยุติกระบวนการเรียกโดยไม่ต้องรันโค้ดที่มีอยู่หลังฟังก์ชัน exit()

ใน C++11 มีฟังก์ชันใหม่หนึ่งฟังก์ชันที่เรียกว่า _Exit() แล้วคุณสมบัติของฟังก์ชันนี้คืออะไร? ฟังก์ชัน exit() ดำเนินการทำความสะอาดก่อนที่จะยุติโปรแกรม มันล้างการสิ้นสุดการเชื่อมต่อ บัฟเฟอร์ฟลัช ฯลฯ ฟังก์ชัน _Exit() นี้จะไม่ทำความสะอาดอะไรเลย หากเราทดสอบโดยใช้วิธี atexit() มันจะไม่ทำงาน

ให้เราดูตัวอย่างสองตัวอย่างว่าในตอนแรกเราใช้ฟังก์ชัน exit() จากนั้นในครั้งต่อไป

ตัวอย่าง

#include<bits/stdc++.h>
using namespace std;
void my_function(void) {
   cout << "Exiting from program";
}
int main() {
   atexit(my_function);
   exit(10);
}

ผลลัพธ์

Exiting from program

ตัวอย่าง

#include<bits/stdc++.h>
using namespace std;
void my_function(void) {
   cout << "Exiting from program";
}
int main() {
   atexit(my_function);
   _Exit(10);
}

ผลลัพธ์

In this case the output is blank. Nothing has come.