This is gck_fileage.c in view mode; [Download] [Up]
/* ******************************************************************** */ /* * GCK * */ /* * A Circuit Simulation Program * */ /* * by Tanju Cataltepe * */ /* * (c) Copyright 1989 * */ /* ******************************************************************** */ /* (c) Copyright 1989, Tanju Cataltepe */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <time.h> #ifdef Macintosh #include <console.h> #include <Files.h> #else #include <sys/types.h> #include <sys/stat.h> #endif #include <math.h> #include <float.h> #include "gck.h" #include "gck_vars.h" #include "gck_protos.h" #include "gck_errors.h" #ifdef Macintosh long FileAge(the_file) #else time_t FileAge(the_file) #endif char *the_file; { #ifdef Macintosh /* Macintosh Toolbox Call, Inside Macintosh Volume IV */ OSErr g; ParamBlockRec Block; ParmBlkPtr B; Str255 filename; FILE *f; aWord tmp; strcpy(tmp,the_file); /* I think CtoPstr puts a Pascal string in place of the C string -- corrupts data */ /* Fix by creating an image (tmp) */ strcpy((char *)filename,(char *)CtoPstr(tmp)); B = &Block; B->ioParam.ioCompletion = NULL; B->ioParam.ioVRefNum = 0; B->ioParam.ioNamePtr = (StringPtr) &filename; B->fileParam.ioFVersNum = 0; B->fileParam.ioFDirIndex = 0; f = fopen(the_file,"rb"); if (f == NULL) { up_to_date = FALSE; return((time_t) 0); } else fclose(f); if (g = PBGetFInfo(B,(Boolean) FALSE) != 0) { up_to_date = FALSE; return((long) 0); } return(B->fileParam.ioFlMdDat); #else /* Unix version */ struct stat stbuf; FILE *f; f = fopen(the_file,"rb"); if (f == NULL) { up_to_date = FALSE; return((time_t) 0); } else fclose(f); stat(the_file, &stbuf); return(stbuf.st_mtime); #endif }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.