/* Refer https://bugs.kde.org/show_bug.cgi?id=234814 */ #include <stdio.h> #include <signal.h> #include <unistd.h> const char kSigbus[] = "I caught the SIGBUS signal!\n"; int GLOB = 3; void mysigbus() { write(1, kSigbus, sizeof(kSigbus)-1); GLOB--; return; } int main() { struct sigaction sa; sa.sa_handler = mysigbus; sigemptyset(&sa.sa_mask); sa.sa_flags = 0; if (sigaction(SIGBUS, &sa, NULL) == -1) { perror("ERROR:"); } while(GLOB) { kill(getpid(), SIGBUS); }; return 0; }