栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何获取文件的ctime,atime,mtime并进行更改

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何获取文件的ctime,atime,mtime并进行更改

的Linux

时间

ctime是索引节点或文件更改时间。更改文件属性(例如更改所有者,更改权限或将文件移至其他文件系统)时,ctime会更新,但在修改文件时也会更新。

文件ctime和atime取决于操作系统。对于Linux,更改索引节点或文件时,Linux将ctime设置为当前时间戳。

这是一个示例,在Linux上,通过将atime和mtime设置为其原始值来隐式更改ctime。

package mainimport (    "fmt"    "os"    "syscall"    "time")func statTimes(name string) (atime, mtime, ctime time.Time, err error) {    fi, err := os.Stat(name)    if err != nil {        return    }    mtime = fi.ModTime()    stat := fi.Sys().(*syscall.Stat_t)    atime = time.Unix(int64(stat.Atim.Sec), int64(stat.Atim.Nsec))    ctime = time.Unix(int64(stat.Ctim.Sec), int64(stat.Ctim.Nsec))    return}func main() {    name := "stat.file"    atime, mtime, ctime, err := statTimes(name)    if err != nil {        fmt.Println(err)        return    }    fmt.Println(atime, mtime)    fmt.Println(ctime)    err = os.Chtimes(name, atime, mtime)    if err != nil {        fmt.Println(err)        return    }    atime, mtime, ctime, err = statTimes(name)    if err != nil {        fmt.Println(err)        return    }    fmt.Println(atime, mtime)    fmt.Println(ctime)}

输出:

2014-01-02 02:21:26.262111165 -0500 EST 2014-01-02 02:18:13.253154086 -0500 EST2014-01-02 02:21:25.666108207 -0500 EST2014-01-02 02:21:26.262111165 -0500 EST 2014-01-02 02:18:13.253154086 -0500 EST2014-01-02 02:21:43.814198198 -0500 EST


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484288.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号