--- ray/src/common/fdate.c 2016/03/06 01:13:17 2.9 +++ ray/src/common/fdate.c 2023/02/10 18:29:46 2.11 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: fdate.c,v 2.9 2016/03/06 01:13:17 schorsch 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) @@ -12,39 +12,48 @@ static const char RCSid[] = "$Id: fdate.c,v 2.9 2016/0 #include "rtio.h" #include #if defined(_WIN32) || defined(_WIN64) - #include +#include #else - #include +#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 +) { struct utimbuf utb; utb.actime = utb.modtime = ftim; - return(utime(fname, &utb)); -#ifdef NOTHING /* XXX does this work anywhere? */ - time_t ftm[2]; - - ftm[0] = ftm[1] = ftim; - return(utime(fname, ftm)); -#endif + return(utime(fname, &utb)); }