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

Bắt sự kiện Ctrl+C (SIGINT) trong C++


Ctrl+G gửi signal SIGINT. Dùng signal() (thư viện <signal.h>) đăng ký handler.

Ví dụ

#include <iostream>
#include <signal.h>
#include <unistd.h>
#include <cstdlib>
using namespace std;

void handler(int sig) {
    cout << "Bắt signal " << sig << endl;
    exit(sig);
}

int main() {
    signal(SIGINT, handler);
    while (true) {
        cout << "Đang chạy...\n";
        sleep(1);
    }
}

Kết quả (nhấn Ctrl+C)

Đang chạy...
Đang chạy...
^CBắt signal 2