当前位置:  开发笔记 > 编程语言 > 正文

如何在POSIX中以编程方式编写文件修改日期?

如何解决《如何在POSIX中以编程方式编写文件修改日期?》经验,为你挑选了2个好方法。

我想从C代码触摸我的文件来修改他们的访问日期.这似乎不起作用:

struct stat fileSt;
lstat(path, &fileSt);
fileSt.st_mtime = time(NULL);

谢谢你的帮助.



1> sigjuice..:

utimes()可能是怎么做的.utime()已经过时了.

像strace这样的工具确定这样的事情是微不足道的.

strace touch -t 01010911 xxx
.
.
open("xxx", O_WRONLY|O_NONBLOCK|O_CREAT|O_NOCTTY|O_LARGEFILE, 0666) = 0
utimes("/proc/self/fd/0", {1230829860, 0}) = 0



2> Johannes Wei..:

我想你想要的utime(2).这应该足够了:

utime(filename, NULL);

文档说:

int utime(const char *filename, const struct utimbuf *times);

[...]

utime()系统调用将filename指定的inode的访问和修改时间分别更改为actime和modtime字段.

如果是NULL,则将文件的访问和修改时间设置为当前时间.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有