ในส่วนนี้ เราจะมาดูความแตกต่างระหว่าง 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.