Linux utime和utimes函数

utime、utimes


函数原型

#include <sys/types.h>
#include <utime.h>

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


#include <sys/time.h>

int utimes(const char *filename, const struct timeval times[2]);


参数

The utimbuf structure is:
struct utimbuf {
               time_t actime;       /* access time */
               time_t modtime;      /* modification time */
           };

struct timeval {
               long tv_sec;        /* seconds */
               long tv_usec;       /* microseconds */
           };

功能

一个文件的访问和修改时间可以用utime更改。times = NULL时,则访问时间和修改时间都设置为当前时间。设置时间的前提条件是(满足其一即可):进程的有效用户ID等于所有者ID 或进程队于该文件具有写权限。times !=NULL时,访问时间和修改时间设置为times指向的结构体中的时间数据。此时进程对文件仅具有写权限是不够的,还需要进程的有效ID必须等于该文件的所有者ID,或者它是超级用户进程。
utimes函数用于修改文件的存取时间和更改时间。

unix环境高级编程的例子

#include <fcntl.h>
#include <utime.h>
#include <stdio.h>
#include <stdlib.h>

struct utimenuf
{
	time_t actime;
	time_t modtime;
};

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)
		{
			printf("%s: stat error", argv[i]);
			continue;
		}

		if((fd = open(argv[i], O_RDWR | O_TRUNC)) < 0)
		{
			printf("%s: open error",argv[i]);
			continue;
		}

		close(fd);

		timebuf.actime = statbuf.st_atime;
		timebuf.modtime = statbuf.st_mtime;
		if(utime(argv[i], &timebuf ) < 0)
		{
			printf("%s: utime error", argv[i]);
			continue;
		}
	}
	exit(0);
}



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值