Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

exit() vs _Exit() trong C và C++


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.