Most operating systems provide interrupt facilities, sometimes called signals either generated by the user or as a result of program failure or reaching a limit like file space. 
Unhandled signals generally terminate a program in a disorderly manner. 
Signal handlers are created so that the program behaves in a well-defined manner upon receipt of a signal.

;Task:
Provide a program that displays an integer on each line of output at the rate of about one per half second. 
<!-- some systems have difficulty with 1/2 second and that's not the point of this subject anyway DG-->
Upon receipt of the SIGINT signal (often generated by the user typing ctrl-C <!-- on unix see    stty -a    . on windows SIGBREAK DG -->( or better yet, SIGQUIT ctrl-\ ))  the program will cease outputting integers, output the number of seconds the program has run, and then the program will quit. <!-- outputting the number if seconds is also unduly complicated for this topic . Hope nobody minds these comments and I didn't really want to change the task  since there were so many examples  already written. see the Perl example for a more extensive use of signals. PS See discussion. If you find these edits inappropriate let me know DG-->
<br><br>

