Path: blob/master/tools/context/time-key.c
19715 views
/*1* Outputs the value of time(2) with the 16 least significant bits zeroed out.2* For use in context keyed payload encoding.3*4* Author: Dimitris Glynos <dimitris at census-labs.com>5*/67#include <stdlib.h>8#include <stdio.h>9#define __USE_XOPEN10#include <time.h>1112char *app = NULL;1314void croak_usage(void)15{16fprintf(stderr, "usage: %s [date & time]\n"17"\tSupported date & time format: 'YYYY-MM-DD HH:MM:SS'\n"18"\te.g. %s '2003-11-04 14:23:10'\n",19app, app);20exit(1);21}2223time_t parse_time(const char *input)24{25struct tm t;26char *p;2728p = strptime(input, "%Y-%m-%d %H:%M:%S", &t);2930if ((!p) || (*p != '\0')) {31fprintf(stderr, "error while processing time spec!\n");32croak_usage();33}3435return mktime(&t);36}3738int main(int argc, char *argv[])39{40time_t t;4142app = argv[0];4344if (argc > 2)45croak_usage();4647if (argc == 2)48t = parse_time(argv[1]);49else50t = time(NULL);5152printf("%#.8lx\n", t & 0xffff0000);53return 0;54}555657