C ++ signal () - C ++ Standard Library

Fungsi signal () di C ++ mengatur penangan kesalahan untuk sinyal yang ditentukan.

sinyal () Prototipe

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

The signalfungsi 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

Artikel yang menarik...