summaryrefslogtreecommitdiff
path: root/reference/C/CONTRIB/SNIP/timegetc.c
diff options
context:
space:
mode:
Diffstat (limited to 'reference/C/CONTRIB/SNIP/timegetc.c')
-rwxr-xr-xreference/C/CONTRIB/SNIP/timegetc.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/reference/C/CONTRIB/SNIP/timegetc.c b/reference/C/CONTRIB/SNIP/timegetc.c
new file mode 100755
index 0000000..c41c45b
--- /dev/null
+++ b/reference/C/CONTRIB/SNIP/timegetc.c
@@ -0,0 +1,44 @@
+/*
+** TIMEGETC.C - waits for a given number of seconds for the user to press
+** a key. Returns the key pressed, or EOF if time expires
+**
+** by Bob Jarvis
+*/
+
+#include <stdio.h>
+#include <time.h>
+#include <conio.h>
+
+int timed_getch(int n_seconds)
+{
+ time_t start, now;
+
+ start = time(NULL);
+ now = start;
+
+ while(difftime(now, start) < (double)n_seconds && !kbhit())
+ {
+ now = time(NULL);
+ }
+
+ if(kbhit())
+ return getch();
+ else return EOF;
+}
+
+#ifdef TEST
+
+void main(void)
+{
+ int c;
+
+ printf("Starting a 5 second delay...\n");
+
+ c = timed_getch(5);
+
+ if(c == EOF)
+ printf("Timer expired\n");
+ else printf("Key was pressed, c = '%c'\n", c);
+}
+
+#endif /* TEST */
ey instructions.
Diffstat (limited to 'Documentation/virtual/kvm/devices')