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