summaryrefslogtreecommitdiff
path: root/reference/C/CONTRIB/SNIP/touch.c
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2008-01-27 11:37:44 +0100
committerTobias Klauser <tklauser@xenon.tklauser.home>2008-01-27 11:37:44 +0100
commit7e0f021a9aec35fd8e6725e87e3313b101d26f5e (patch)
treeb1cacc4b24393f517aeb4610e9e1021f954307a8 /reference/C/CONTRIB/SNIP/touch.c
Initial import (2.0.2-6)2.0.2-6
Diffstat (limited to 'reference/C/CONTRIB/SNIP/touch.c')
-rwxr-xr-xreference/C/CONTRIB/SNIP/touch.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/reference/C/CONTRIB/SNIP/touch.c b/reference/C/CONTRIB/SNIP/touch.c
new file mode 100755
index 0000000..0f21d19
--- /dev/null
+++ b/reference/C/CONTRIB/SNIP/touch.c
@@ -0,0 +1,63 @@
+/*----------------------------------------------------------------------*
+* Program: touch *
+* Programmer: Ray L. McVay *
+* Started: 8 Aug 91 *
+* Updated: 13 Feb 93 Thad Smith *
+* Updated: 15 Feb 93 Bob Stout *
+*-----------------------------------------------------------------------*
+* Simple touch program to test BC time stamping function. *
+* Public Domain *
+*----------------------------------------------------------------------*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#ifdef __TURBOC__
+ #include <dos.h>
+ #include <io.h>
+#else
+ #include "ftime.h" /* Borland work-alike in SNIPPETS */
+#endif
+
+void usage(void);
+
+main(int argc, char **argv)
+{
+ time_t tnow;
+ struct tm tmnow;
+ struct ftime ft;
+ FILE *f;
+
+ if (argc < 2)
+ usage();
+
+ tnow = time(NULL);
+ tmnow = *localtime(&tnow);
+
+ ft.ft_year = tmnow.tm_year - 80;
+ ft.ft_month = tmnow.tm_mon + 1;
+ ft.ft_day = tmnow.tm_mday;
+ ft.ft_hour = tmnow.tm_hour;
+ ft.ft_min = tmnow.tm_min;
+ ft.ft_tsec = tmnow.tm_sec/2;
+
+ if ((f = fopen(argv[1], "r+b")) != NULL)
+ setftime(fileno(f), &ft);
+ else if ((f = fopen(argv[1], "w")) != NULL)
+ setftime(fileno(f), &ft);
+ else perror("Can't open file");
+
+ if (f)
+ fclose(f);
+
+ return EXIT_SUCCESS;
+}
+
+void usage(void)
+{
+ puts("Usage: TOUCH filename\n");
+ puts(" The timestamp of filename will be set to the current time.");
+ puts(" A zero-length file will be created if the file doesn't exist.");
+ exit(EXIT_FAILURE);
+}
+