你说的创建日期应该是change time这个时间戳吧?如果是找修改它的标准的api,似乎
是没有的。你可以看看内核源码的fs/attr.c中的notify_change:
attr->ia_ctime = now;
if (!(ia_valid & ATTR_ATIME_SET))
attr->ia_atime = now;
else
attr->ia_atime = timestamp_truncate(attr->ia_atime, inode);
ctime是直接赋值为now了,根本不让改,所以应该是没有标准api来修改。
你那个tv_nsec的算法是错误的,可以通过clock_gettime获得精确到纳秒的当前时间。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: utimensat() 只能修改 modified 和 access 两个时间,不能修改创建时间。
: 想在备份的时候把创建日期也备份起来。
: 顺便问一下,utimensat() 的参数是结构体 struct timespec,其中的 tv_nsec 字段转换秒小数点后面的数字吗?
: ...................
--
修改:gameplayer FROM 111.199.187.*
FROM 111.199.187.*