Fungsi signal () di C ++ mengatur penangan kesalahan untuk sinyal yang ditentukan.
sinyal () Prototipe
void (* sinyal (int sig, void (* func) (int))) (int);
The signal
fungsi mendefinisikan sebuah metode untuk menangani sinyal. Penangan sinyal dapat disetel sehingga salah satu tindakan berikut dilakukan:
- Penanganan sinyal default.
- Abaikan sinyalnya.
- Fungsi yang ditentukan pengguna dipanggil untuk menangani sinyal.
Ini didefinisikan dalam file header "> file header.
sinyal () Parameter
- sig: Sinyal untuk ditangani oleh penangan sinyal. Ini dapat mengambil salah satu dari nilai berikut:
- SIGABRT
- SIGFPE
- SIGILL
- SIGINT
- SIGSEGV
- SIGTERM
- handler: Penangan sinyal yang menangani sinyal. Ini bisa menjadi salah satu dari berikut ini:
- SIG_DFL: Penanganan default.
- SIG_IGN: Abaikan sinyal.
- Pointer ke suatu fungsi: Fungsi yang ditentukan pengguna untuk menangani sinyal. Tanda tangan fungsi harus setara dengan berikut ini:
void fun (int sig);
sinyal () Nilai kembali
Jika berhasil, ia mengembalikan penangan sinyal sebelumnya dan jika gagal, SIG_ERR dikembalikan.
Contoh: Bagaimana fungsi signal () bekerja
#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; )
Saat Anda menjalankan program, hasilnya adalah:
Sinyal ditangani