fork(1) download
  1. /*
  2.  * main.cpp
  3.  *
  4.  * Created on: 18.03.2017
  5.  * Author: sylwek
  6.  */
  7. #include <pthread.h>
  8. #include <stdint.h>
  9. #include <cstdio>
  10. #include <unistd.h>
  11. #include <csignal>
  12.  
  13. volatile bool $run = true;
  14.  
  15. static void quitHandler(int __attribute__((unused)) signum)
  16. {
  17. $run = false;
  18. }
  19.  
  20. void setupQuitHandler()
  21. {
  22. struct sigaction action;
  23. action.sa_handler = quitHandler;
  24. action.sa_flags = SA_RESETHAND;
  25.  
  26. if (sigemptyset(&action.sa_mask) < 0) printf("[SetupQuit] sigemptyset");
  27.  
  28. if (sigaction(SIGINT, &action, nullptr) < 0) printf("[SetupQuit] sigaction SIGINT");
  29. if (sigaction(SIGQUIT, &action, nullptr) < 0) printf("[SetupQuit] sigaction SIGQUIT");
  30. if (sigaction(SIGTERM, &action, nullptr) < 0) printf("[SetupQuit] sigaction SIGTERM");
  31. if (sigaction(SIGABRT, &action, nullptr) < 0) printf("[SetupQuit] sigaction SIGABRT");
  32. }
  33.  
  34. int main(int argc, char **argv) {
  35.  
  36. setupQuitHandler();
  37. while($run)
  38. {
  39. sleep(1);
  40. printf("Do nothing! \n");
  41. $run = false;
  42. }
  43. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Do nothing!