signal:SIGINT and sigaction()

signal() is deprecated because after the first signal handling,
the kernel reset the handler, which means, the second signal
will be handled by the default handlers again.

This is where sigaction() helps. it has advanced features and
will gurantee that all signals are handled reliably by the
registered handler.

Verification:

[hunter@FedoraCore16 signal]$ ./signal
I am 12489
1 2 ^C Received signal: 2
Signal originates from process 0
3 4 5 6 7 8 ^C Received signal: 2
Signal originates from process 0
9 ^C Received signal: 2
Signal originates from process 0