Σήμα C ++ () - C ++ Standard Library

Η συνάρτηση σήματος () στο C ++ ορίζει τον χειριστή σφαλμάτων για το καθορισμένο σήμα.

σήμα () Πρωτότυπο

 άκυρο (* σήμα (int sig, void (* func) (int))) (int);

Η signalσυνάρτηση ορίζει μια μέθοδο χειρισμού του σήματος. Ο χειριστής σήματος μπορεί να ρυθμιστεί έτσι ώστε να εκτελείται μία από τις ακόλουθες ενέργειες:

  • Προεπιλεγμένος χειρισμός σήματος.
  • Αγνοήστε το σήμα.
  • Η λειτουργία που ορίζεται από τον χρήστη καλείται να χειριστεί το σήμα.

Ορίζεται στο αρχείο κεφαλίδας "> αρχείο κεφαλίδας.

σήμα () Παράμετροι

  • sig: Το σήμα που πρέπει να χειριστεί ο χειριστής σήματος. Μπορεί να πάρει μία από τις ακόλουθες τιμές:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • ΥΠΟΓΡΑΦΗ
    • SIGSEGV
    • ΥΠΟΓΡΑΦΟΣ
  • χειριστής: Ο χειριστής σήματος που χειρίζεται το σήμα. Μπορεί να είναι ένα από τα ακόλουθα:
    • SIG_DFL: Προεπιλεγμένος χειρισμός.
    • SIG_IGN: Αγνοήστε το σήμα.
    • Δείκτης σε μια λειτουργία: Λειτουργία καθορισμένη από τον χρήστη για το χειρισμό του σήματος. Η υπογραφή της συνάρτησης πρέπει να είναι ισοδύναμη με την ακόλουθη:
       άκυρη διασκέδαση (int sig)

σήμα () Τιμή επιστροφής

Με επιτυχία, επιστρέφει τον προηγούμενο χειριστή σήματος και στην αποτυχία επιστρέφεται SIG_ERR.

Παράδειγμα: Πώς λειτουργεί η λειτουργία σήματος ()

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

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 Το σήμα αντιμετωπίζεται

ενδιαφέροντα άρθρα...