Computer >> Máy Tính >  >> Lập trình >> lập trình C

Viết chương trình C không kết thúc khi nhấn Ctrl + C

Trong phần này, chúng ta sẽ xem cách viết một chương trình bằng C mà không thể kết thúc bằng phím Ctrl + C.

Ctrl + C tạo ra ngắt bàn phím và nó dừng việc thực hiện quy trình hiện tại. Tại đây khi chúng ta nhấn tổ hợp phím Ctrl + C thì nó sẽ in ra một thông báo sau đó tiếp tục thực hiện. Để sử dụng chức năng này, chúng tôi sẽ sử dụng kỹ thuật xử lý tín hiệu trong C. Khi nhấn Ctrl + C, nó tạo ra tín hiệu SIGINT. Có một số tín hiệu khác và chức năng của chúng trong danh sách sau.

Tín hiệu

Mô tả
SIGABRT
Cho biết sự kết thúc bất thường
SIGFPE
Chỉ ra ngoại lệ dấu chấm động
SIGILL
Chỉ ra lệnh không hợp lệ.
SIGINT
Cho biết yêu cầu chú ý tương tác được gửi đến chương trình.
SIGSEGV
Cho biết truy cập bộ nhớ không hợp lệ.
SIGTERM
Cho biết yêu cầu chấm dứt được gửi đến chương trình.


Ở đây, chúng tôi sẽ sử dụng tín hiệu hàm thư viện C chuẩn () để xử lý các tín hiệu này.

Mã mẫu

#include <stdio.h>
#include <signal.h>
void sigint_handler(int signum) { //Handler for SIGINT
   //Reset handler to catch SIGINT next time.
   signal(SIGINT, sigint_handler);
   printf("Cannot be stopped using Ctrl+C \n");
   fflush(stdout);
}
main () {
   signal(SIGINT, sigint_handler);
   while(1) { //create infinite loop
   }
}

Đầu ra

Cannot be stopped using Ctrl+C
Cannot be stopped using Ctrl+C