Skip to content

Instantly share code, notes, and snippets.

@flowerinthenight
Created August 26, 2016 19:24
Show Gist options
  • Save flowerinthenight/1ea9a6b71bc9d4a6e5a269e63028d046 to your computer and use it in GitHub Desktop.
Save flowerinthenight/1ea9a6b71bc9d4a6e5a269e63028d046 to your computer and use it in GitHub Desktop.
A simple signal handler in C++.
#include <iostream>
#include <signal.h>
#include <unistd.h>
#include <sys/file.h>
// signal handler
void signal_handler(int s)
{
std::cout << "Caught signal: " << s << std::endl;
exit(1);
}
// entry
int main(int argc, char* argv[])
{
// setup signal handler
struct sigaction sigIntHandler;
sigIntHandler.sa_handler = signal_handler;
sigemptyset(&sigIntHandler.sa_mask);
sigIntHandler.sa_flags = 0;
sigaction(SIGINT, &sigIntHandler, NULL);
std::cout << "Press Ctrl+C to exit." << std::endl;
for (;;) {
sleep(1);
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment