日期:2014-05-16  浏览次数:20943 次

linux如何设置文件、目录的修改时间?
可以用stat读取文件、目录的修改时间,但是如何设置呢?

------解决方案--------------------
utime 或者 utimes
------解决方案--------------------
utime函数:
 原型是: 
  #include<utime.h>
  int utime (const char *pathname, const struct utimbuf *time);

 参数介绍:
  其中pathname就是你要更改时间的文件名啦~~
  time参数,这里出现了一个结构体struct utimbuf,这个结构体包含字段如下:
              struct utimbuf{
                   time_t actime;//最后访问时间
                   time_t modtime;//最后修改时间
              };
  那么如果time字段是NULL,utime就将文件的最后访问时间和最后修改时间设置为当前时间。
  如果time不为NULL,那就需要楼主自己给这个utimbuf结构进行赋值,可以用stat函数从别的文件获取,然后将utimbuf变量传入utime函数,完成文件时间的修改。

但是注意的是,这个函数是会改变文件的更改状态时间,更改状态时间会因为你执行utime函数而自动更新为楼主执行程序的时间!