Phần này xem khác biệt giữa exit() và _Exit() trong C và C++. Trong C, exit() kết thúc tiến trình gọi mà không thực thi mã còn lại sau exit().
Trong C++11, có hàm mới _Exit(). Tính năng gì? exit() làm dọn dẹp trước khi kết thúc: xóa kết nối, flush buffer, v.v. _Exit() không dọn dẹp gì. Nếu test bằng atexit(), nó không chạy.
Xem hai ví dụ, đầu dùng exit(), sau dùng _Exit():
Ví dụ
#include<bits/stdc++.h>
using namespace std;
void my_function(void) {
cout << "Exiting from program";
}
int main() {
atexit(my_function);
exit(10);
}Kết quả
Exiting from program
Ví dụ
#include<bits/stdc++.h>
using namespace std;
void my_function(void) {
cout << "Exiting from program";
}
int main() {
atexit(my_function);
_Exit(10);
}Kết quả
Trong trường hợp này output trống. Không có gì xuất ra.