--- ray/src/common/fdate.c 2003/02/25 02:47:21 2.6 +++ ray/src/common/fdate.c 2023/02/10 18:29:46 2.11 @@ -1,39 +1,59 @@ #ifndef lint -static const char RCSid[] = "$Id: fdate.c,v 2.6 2003/02/25 02:47:21 greg Exp $"; +static const char RCSid[] = "$Id: fdate.c,v 2.11 2023/02/10 18:29:46 greg Exp $"; #endif /* * Return file date (UNIX seconds as returned by time(2) call) * - * External symbols declared in standard.h + * External symbols declared in rtio.h */ #include "copyright.h" -#include +#include "rtio.h" #include +#if defined(_WIN32) || defined(_WIN64) +#include +#else +#include +#endif time_t -fdate(fname) /* get file date */ -char *fname; +fdate( /* get file date */ + const char *fname +) { struct stat sbuf; - if (stat(fname, &sbuf) == -1) + if (stat(fname, &sbuf) < 0) return(0); return(sbuf.st_mtime); } +time_t +fddate( /* get file descriptor date */ + int fd +) +{ + struct stat sbuf; + + if (fstat(fd, &sbuf) < 0) + return(0); + + return(sbuf.st_mtime); +} + int -setfdate(fname, ftim) /* set file date */ -char *fname; -long ftim; +setfdate( /* set file date */ + const char *fname, + long ftim +) { - time_t ftm[2]; + struct utimbuf utb; - ftm[0] = ftm[1] = ftim; + utb.actime = utb.modtime = ftim; - return(utime(fname, ftm)); + return(utime(fname, &utb)); }