#include #include #include #include #include int newer(char *fname1, char*fname2); long int getmtime(char* fname); int main(int argc, char* argv[]) { int value; time_t t; if(argc > 2) { t = getmtime(argv[1]); printf("%s %s \n", argv[1], ctime(&t)); printf("%s %ld\n", argv[2], t=getmtime(argv[2])); printf("%s %s \n", argv[2], ctime(&t)); value = newer(argv[1], argv[2]); if(value == 1) printf("%s is newer than %s\n", argv[1], argv[2]); else if(value == -1) printf("%s is older than %s\n", argv[1], argv[2]); else printf("both files modified at the same time\n"); } else printf("usage: %s file1 file2\n", argv[0]); return 0; } int newer(char *fname1, char* fname2) { int time1 = getmtime(fname1), time2 = getmtime(fname2); if(time1 > time2) return 1; else if (time1 < time2) return -1; else return 0; } time_t getmtime(char* fname) { struct stat stb; if(stat(fname,&stb)<0) { fprintf(stderr, "Error - stat of %s failed!\n", fname); exit(1); } return (stb.st_mtime); }