Tín hiệu C ++ () - Thư viện chuẩn C ++

Hàm signal () trong C ++ đặt trình xử lý lỗi cho tín hiệu được chỉ định.

signal () Nguyên mẫu

 void (* signal (int sig, void (* func) (int))) (int);

Các signalchức năng định nghĩa một phương pháp để xử lý các tín hiệu. Bộ xử lý tín hiệu có thể được đặt để thực hiện một trong các hành động sau:

  • Xử lý tín hiệu mặc định.
  • Bỏ qua tín hiệu.
  • Chức năng do người dùng xác định được gọi để xử lý tín hiệu.

Nó được định nghĩa trong tệp tiêu đề "> tệp tiêu đề.

signal () Tham số

  • sig: Tín hiệu do bộ xử lý tín hiệu xử lý. Nó có thể nhận một trong các giá trị sau:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • SIGINT
    • SIGSEGV
    • SIGTERM
  • handler: Bộ xử lý tín hiệu xử lý tín hiệu. Nó có thể là một trong những điều sau:
    • SIG_DFL: Xử lý mặc định.
    • SIG_IGN: Bỏ qua tín hiệu.
    • Con trỏ đến một chức năng: Chức năng do người dùng xác định để xử lý tín hiệu. Chữ ký của hàm phải tương đương như sau:
       void vui (int sig);

signal () Giá trị trả về

Khi thành công, nó trả về trình xử lý tín hiệu trước đó và khi thất bại, SIG_ERR được trả về.

Ví dụ: Cách hoạt động của hàm signal ()

 #include #include using namespace std; sig_atomic_t signalled = 0; void handler(int sig) ( signalled = 1; ) int main() ( signal(SIGINT, handler); raise(SIGINT); if (signalled) cout << "Signal is handled"; else cout << "Signal is not handled"; return 0; )

Khi bạn chạy chương trình, đầu ra sẽ là:

 Tín hiệu được xử lý

thú vị bài viết...