Source File
stat_linux.go
Belonging Package
os
// Copyright 2009 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package osimport ()func ( *fileStat, string) {.name = basename().size = .sys.Size.modTime = timespecToTime(.sys.Mtim).mode = FileMode(.sys.Mode & 0777)switch .sys.Mode & syscall.S_IFMT {case syscall.S_IFBLK:.mode |= ModeDevicecase syscall.S_IFCHR:.mode |= ModeDevice | ModeCharDevicecase syscall.S_IFDIR:.mode |= ModeDircase syscall.S_IFIFO:.mode |= ModeNamedPipecase syscall.S_IFLNK:.mode |= ModeSymlinkcase syscall.S_IFREG:// nothing to docase syscall.S_IFSOCK:.mode |= ModeSocket}if .sys.Mode&syscall.S_ISGID != 0 {.mode |= ModeSetgid}if .sys.Mode&syscall.S_ISUID != 0 {.mode |= ModeSetuid}if .sys.Mode&syscall.S_ISVTX != 0 {.mode |= ModeSticky}}func ( syscall.Timespec) time.Time {return time.Unix(int64(.Sec), int64(.Nsec))}// For testing.func ( FileInfo) time.Time {return timespecToTime(.Sys().(*syscall.Stat_t).Atim)}