print error if changing time fails

This commit is contained in:
rsc 2007-05-20 14:37:29 +00:00
parent e1ad38bf2f
commit b7cb7453e2

View file

@ -3,6 +3,7 @@
int touch(int, char *); int touch(int, char *);
ulong now; ulong now;
int tflag;
void void
usage(void) usage(void)
@ -20,6 +21,7 @@ main(int argc, char **argv)
now = time(0); now = time(0);
ARGBEGIN{ ARGBEGIN{
case 't': case 't':
tflag = 1;
now = strtoul(EARGF(usage()), 0, 0); now = strtoul(EARGF(usage()), 0, 0);
break; break;
case 'c': case 'c':
@ -52,11 +54,15 @@ touch(int nocreate, char *name)
fprint(2, "touch: %s: cannot wstat: %r\n", name); fprint(2, "touch: %s: cannot wstat: %r\n", name);
return 1; return 1;
} }
if ((fd = create(name, OREAD, 0666)) < 0) { if((fd = create(name, OREAD, 0666)) < 0) {
fprint(2, "touch: %s: cannot create: %r\n", name); fprint(2, "touch: %s: cannot create: %r\n", name);
return 1; return 1;
} }
dirfwstat(fd, &stbuff); if(tflag && dirfwstat(fd, &stbuff) < 0){
fprint(2, "touch: %s: cannot wstat: %r\n", name);
close(fd);
return 1;
}
close(fd); close(fd);
return 0; return 0;
} }