22/08/2018, 11:15

signal.h trong C

signal.h trong C Header file có tên signal.h trong Thư viện C định nghĩa một kiểu biến sig_atomic_t, hai lời gọi hàm, và một số macro để xử lý các tín hiệu khác nhau được báo cáo trong khi thực thi một chương trình. Các biến được định nghĩa trong signal.h ...

signal.h trong C

Header file có tên signal.h trong Thư viện C định nghĩa một kiểu biến sig_atomic_t, hai lời gọi hàm, và một số macro để xử lý các tín hiệu khác nhau được báo cáo trong khi thực thi một chương trình.

Các biến được định nghĩa trong signal.h

Sau đây là kiểu biến được định nghĩa trong signal.h:

sig_atomic_t: Đây là kiểu int và được sử dụng như là một biến trong bộ xử lý tín hiệu (signal handler). Đây là một kiểu nguyên của một đối tượng mà có thể được truy cập như là một thực thể nguyên tử (atomic entity), ngay cả khi có mặt các tín hiệu không đồng bộ.

Các macro được định nghĩa trong signal.h

Sau đây là các macro được định nghĩa trong signal.h và các macro này sẽ được sử dụng trong hai hàm được liệt kê dưới đây. Macro SIG_ được sử dụng với hàm tín hiệu để định nghĩa các hàm tín hiệu.

STT Macro & Miêu tả
1 SIG_DFL

Đây là Signal Handler mặc định

2 SIG_ERR

Biểu diễn một Signal Error

3 SIG_IGN

Bỏ qua tín hiệu

Macro SIG được sử dụng để biểu diễn một tín hiệu số trong các điều kiện sau:

STT Macro & Miêu tả
1 SIGABRT

Kết thúc chương trình một cách bất thường

2 SIGFPE

Lỗi số thực dấu chấm động như chia cho số 0

3 SIGILL

Hoạt động không hợp lệ

4 SIGINT

Tín hiệu ngắt, chẳng hạn như Ctrl-C

5 SIGSEGV

Truy cập không hợp lệ tới kho lưu trữ

6 SIGTERM

Yêu cầu kết thúc

Các hàm được định nghĩa trong signal.h

Sau đây là một số hàm được định nghĩa trong signal.h trong Thư viện C:

STT Hàm & Miêu tả
1

Hàm void (*signal(int sig, void (*func)(int)))(int)

Hàm này thiết lập một hàm để xử lý tín hiệu (ví dụ: một signal handler)

2

Hàm int raise(int sig)

Hàm này tạo tín hiệu sig. Tham số sig là tương thích với macro SIG

 Theo Tutorialspoint

Bài trước: Thư viện C: <setjmp.h>

Bài tiếp: stdarg.h trong C

0