sleep1.c 498 B

1234567891011121314151617181920212223242526
  1. /* sleep1.c
  2. * purpose show how sleep works
  3. * usage sleep1
  4. * outline sets handler, sets alarm, pauses, then returns
  5. */
  6. #include <stdio.h>
  7. #include <signal.h>
  8. // #define SHHHH
  9. main()
  10. {
  11. void wakeup(int);
  12. printf("about to sleep for 4 seconds\n");
  13. signal(SIGALRM, wakeup); /* catch it */
  14. alarm(4); /* set clock */
  15. pause(); /* freeze here */
  16. printf("Morning so soon?\n"); /* back to work */
  17. }
  18. void wakeup(int signum)
  19. {
  20. #ifndef SHHHH
  21. printf("Alarm received from kernel\n");
  22. #endif
  23. }