Commit | Line | Data |
---|---|---|
58fd8a81 DM |
1 | /* Program to produce output at regular intervals. */ |
2 | ||
3 | #include <stdio.h> | |
4 | #include <time.h> | |
5 | ||
6 | struct tm *localtime (); | |
7 | ||
8 | main (argc, argv) | |
9 | int argc; | |
10 | char **argv; | |
11 | { | |
12 | int period = 60; | |
13 | long when; | |
14 | struct tm *tp; | |
15 | ||
16 | if (argc > 1) | |
17 | period = atoi (argv[1]); | |
18 | ||
19 | while (1) | |
20 | { | |
7fb0d26f JB |
21 | /* Make sure wakeup stops when Emacs goes away. */ |
22 | if (getppid () == 1) | |
23 | exit (0); | |
58fd8a81 DM |
24 | printf ("Wake up!\n"); |
25 | fflush (stdout); | |
26 | /* If using a period of 60, produce the output when the minute | |
27 | changes. */ | |
28 | if (period == 60) | |
29 | { | |
30 | time (&when); | |
31 | tp = localtime (&when); | |
32 | sleep (60 - tp->tm_sec); | |
33 | } | |
34 | else | |
35 | sleep (period); | |
36 | } | |
37 | } |