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