utime函数:对一个文件的访问和修改时间
#include <utime.h>
int utime( const char *pathname, const struct utimbuf *times );
返回值:若成功则返回0,若出错则返回-1
此函数所使用的数据结构是:
struct utimbuf {
time_t actime; /* access time */
time_t modtime; /* modification time */
}
程序实例:
#include "apue.h"
#include <fcntl.h>
#include <utime.h>
int main(int argc,char *argv[] )
{
int i,fd;
struct stat statbuf;
struct utimbuf timebuf;
for (i=1;i<argc;i++)
{
if (stat(argv[i],&statbuf)<0)
{
/*取得当前时间*/
err_ret("%s:stat error",argv[i]);
continue;
}
if ((fd=open(argv[i],O_RDWR|O_TRUNC))<0)
{
/*截短*/
err_ret("%s:open error ",argv[i]);
continue;
}
close(fd);
timebuf.actime=statbuf.st_atime;
timebuf.modtime=statbuf.st_mtime;
if(utime(argv[i],&timebuf)<0)
{
/*retset time*/
err_ret("%s: utime error",argv[i]);
continue;
}
}
exit(0);
}
运行结果: