+2  A: 

There is an example of making a time here. You can then compare the times with the difftime method.

Pace
he is already using both in his code in the same way described in the link.
Neeraj
cheers for the information Pace, i have modified my original post to include the new working code for what i was trying to-do in case anyone else get this problem.
Kristiaan
A: 

If it were me, I'd be tempted to just save the result of time() to the file. That would save a whole lot of string parsing work on the other side.

T.E.D.
A: 

Paring your format is easy in C. Use this to read the time components from the file:

int hr, min; 
fscanf (file, "%d:%d", &hr, &min);

Here is a complete solution:

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

struct HrMin_ {
  int hr;
  int min;
};
typedef struct HrMin_ HrMin;

static const double TIME_DIFFERENCE = (double) (5 * 1000);

static HrMin read_time (FILE* file);

int
main (int argc, char **argv)
{
  time_t sys_time_t = 0;
  struct tm *sys_time = NULL;
  struct tm *file_time = NULL;
  double d = 0.0f;

  if (argc != 2)
    {
      printf ("Usage: time_cmp <time_file>\n");
      return 1;
    }

  time (&sys_time_t);

  sys_time = localtime (&sys_time_t);
  file_time = malloc (sizeof (struct tm));

  file_time->tm_sec = sys_time->tm_sec;
  file_time->tm_min = sys_time->tm_min;
  file_time->tm_hour = sys_time->tm_hour;
  file_time->tm_mday = sys_time->tm_mday;
  file_time->tm_mon = sys_time->tm_mon;
  file_time->tm_year = sys_time->tm_year;
  file_time->tm_wday = sys_time->tm_wday;
  file_time->tm_yday = sys_time->tm_yday;
  file_time->tm_isdst = sys_time->tm_isdst;  

  FILE *file = fopen (argv[1], "r");
  if (file == NULL)
    {
      printf ("Failed to open file: %s\n", argv[1]);
      return 1;
    }
  HrMin hr_min = read_time (file);
  fclose (file);

  file_time->tm_hour = hr_min.hr;
  file_time->tm_min = hr_min.min;

  d = difftime (sys_time_t, mktime (file_time));
  free (file_time);

  if (d < 0) d *= -1;
  printf ("Diff: %f\n", d);
  if (d >= TIME_DIFFERENCE)
    printf ("WARN!\n");

  return 0;
}

static HrMin 
read_time (FILE *file)
{
  HrMin hr_min;
  hr_min.hr = 0;
  hr_min.min = 0;
  fscanf (file, "%d:%d", &hr_min.hr, &hr_min.min);
  return hr_min;
}
Vijay Mathew
A: 
Neeraj
Hi Neeraj, thanks for the solution to this, i had a feeling it was to-do with pointers and memory locations but my c knowladge is very basic so i had no idea what i needed to-do to fix it.thanks for the suggestion.
Kristiaan