C ++ signal () - C ++ Standart Kitaplığı

C ++ 'daki signal () işlevi, belirtilen sinyal için hata işleyiciyi ayarlar.

signal () Prototip

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

signalFonksiyon sinyal işlemek için bir yöntem tanımlar. Sinyal işleyici, aşağıdaki eylemlerden biri gerçekleştirilecek şekilde ayarlanabilir:

  • Varsayılan sinyal işleme.
  • Sinyali görmezden gelin.
  • Sinyali işlemek için kullanıcı tanımlı işlev çağrılır.

Başlık dosyasında "> başlık dosyasında tanımlanır.

signal () Parametreler

  • sig: Sinyal işleyici tarafından işlenecek sinyal. Aşağıdaki değerlerden birini alabilir:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • SIGINT
    • SIGSEGV
    • SİGTERM
  • işleyici: Sinyali işleyen sinyal işleyici. Aşağıdakilerden biri olabilir:
    • SIG_DFL: Varsayılan işleme.
    • SIG_IGN: Sinyali yok sayın.
    • Bir işlevin işaretçisi: Sinyali işlemek için kullanıcı tanımlı işlev. İşlevin imzası aşağıdakine eşdeğer olmalıdır:
       void fun (int sig);

signal () Dönüş değeri

Başarı halinde, önceki sinyal işleyicisini döndürür ve başarısız olması durumunda SIG_ERR döndürülür.

Örnek: signal () işlevi nasıl çalışır?

 #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; )

Programı çalıştırdığınızda, çıktı:

 Sinyal işleniyor

Ilginç makaleler...