/**
@file utime.c
@author Mitch Richling <http://www.mitchr.me/>
@Copyright Copyright 1998 by Mitch Richling. All rights reserved.
@brief How to change mtime and atime on a file@EOL
@Keywords timestamp touch file atime mtime
@Std C89
Note that utimes and futimes, both BSDisms, are not
portable. utime is part of POSIX.1 so should be most
places. Note that some OSes will allow strange values
for the times (negative for example). Such values will
often cause stat to break on other OSes -- so don't set
the time to impossible values.
*/
#include <sys/types.h> /* UNIX types POSIX */
#include <utime.h> /* utime POSIX */
#include <stdlib.h> /* Standard Lib ISOC */
#include <errno.h> /* error stf POSIX */
#include <stdio.h> /* I/O lib ISOC */
int main(int argc, char *argv[]);
int main(int argc, char *argv[]) {
int retV;
struct utimbuf utimeStruct;
if(argc != 2) {
printf("ERROR: A file name is required as the single argument.\n");
exit(1);
} /* end if */
/* Set both to 0 time -- Number of seconds since 0 hours, 0
minutes, 0 seconds, January 1, 1970, Coordinated Universal Time, without
including leap seconds. */
utimeStruct.actime = 0;
utimeStruct.modtime = 0;
/* If the last arg is NULL, then both actime and modtime are set
to the current time. */
if(utime(argv[1], &utimeStruct) != 0) {
/* -1 is returned upon failure, 0 upon success. Different UNIX
variants document different error conditions for this function.
It is probably best to simply print the perror message. As
with most file system commands, you should retry in case of EINTR. */
printf("ERROR: utime failed with error number: %d\n", errno);
exit(1);
} /* end if */
} /* end func main */
Generated by GNU Enscript 1.6.5.2.