fork download
  1. #include <stdlib.h>
  2. #include <csignal>
  3. #include <cstdlib>
  4. #include <exception>
  5. #include <iostream>
  6.  
  7. void print (char const* msg) { std::cout << msg << std::endl; }
  8.  
  9. void on_exit() { print("on_exit"); }
  10.  
  11. struct class_exit_t { ~class_exit_t() { print ("class_exit"); } };
  12.  
  13. class_exit_t class_exit;
  14.  
  15. void my_term () { print("my_term"); abort(); }
  16.  
  17. void on_abort(int) { print("on_abort"); }
  18.  
  19. int main ()
  20. {
  21. atexit (&on_exit);
  22. signal(SIGABRT, &on_abort);
  23. std::set_terminate (&my_term);
  24.  
  25. #if 0
  26. _Exit(EXIT_FAILURE);
  27. #else
  28. std::terminate ();
  29. #endif
  30.  
  31. return 0;
  32. }
  33.  
Runtime error #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
my_term
on_abort