#include<stdio.h>
#include<stdlib.h>
#include<signal.h>
#include<unistd.h>
#include<sys/types.h>
void sighup()
{
signal(SIGHUP,sighup);
printf("Received SIGHUP! Happy Now ??\n"); }
void sigbus()
{
signal(SIGBUS,sigbus);
printf("received SIGBUS! Get a life dude !\n"); }
void sigquit()
{
printf("I am done with you. Bye!!\n"); }
int main()
{
int pid = fork();
if (pid < 0)
{
}
if (pid == 0)
{
signal(SIGHUP,sighup);
signal(SIGBUS,sigbus);
signal(SIGQUIT,sigquit);
while(1)
{
;
}
}
else
{
kill(pid, SIGHUP);
kill(pid, SIGBUS);
kill(pid, SIGQUIT);
wait();
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CiNpbmNsdWRlPHNpZ25hbC5oPgojaW5jbHVkZTx1bmlzdGQuaD4KI2luY2x1ZGU8c3lzL3R5cGVzLmg+Cgp2b2lkIHNpZ2h1cCgpCnsKCXNpZ25hbChTSUdIVVAsc2lnaHVwKTsKCXByaW50ZigiUmVjZWl2ZWQgU0lHSFVQISBIYXBweSBOb3cgPz9cbiIpOwp9Cgp2b2lkIHNpZ2J1cygpCnsKCXNpZ25hbChTSUdCVVMsc2lnYnVzKTsKCXByaW50ZigicmVjZWl2ZWQgU0lHQlVTISBHZXQgYSBsaWZlIGR1ZGUgIVxuIik7Cn0KCnZvaWQgc2lncXVpdCgpCnsKCXByaW50ZigiSSBhbSBkb25lIHdpdGggeW91LiBCeWUhIVxuIik7CglmZmx1c2goc3Rkb3V0KTsKCWV4aXQoMCk7Cn0KCmludCBtYWluKCkKewkKCWludCBwaWQgPSBmb3JrKCk7CgkKCWlmIChwaWQgPCAwKQoJewoJCXBlcnJvcigiZm9yayIpOwoJCWV4aXQoMSk7Cgl9CgkKCWlmIChwaWQgPT0gMCkKCXsJCgkJcHJpbnRmKCJjaGlsZFxuIik7CgkJCgkJc2lnbmFsKFNJR0hVUCxzaWdodXApOwoJCXNpZ25hbChTSUdCVVMsc2lnYnVzKTsKCQlzaWduYWwoU0lHUVVJVCxzaWdxdWl0KTsKCQl3aGlsZSgxKQoJCXsKCQkJOwoJCX0KCX0KCWVsc2UKCXsKCQlwcmludGYoInBhcmVudFxuIik7CgkJa2lsbChwaWQsIFNJR0hVUCk7CgkJa2lsbChwaWQsIFNJR0JVUyk7CgkJa2lsbChwaWQsIFNJR1FVSVQpOwoJCQoJCXdhaXQoKTsKCX0KfQoJCQ==