| // 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 os |
| |
| import "syscall" |
| |
| // An operating-system independent representation of Unix data structures. |
| // OS-specific routines in this directory convert the OS-local versions to these. |
| |
| // Getpagesize returns the underlying system's memory page size. |
| func Getpagesize() int { return syscall.Getpagesize() } |
| |
| // A FileInfo describes a file and is returned by Stat, Fstat, and Lstat |
| type FileInfo struct { |
| Dev uint64 // device number of file system holding file. |
| Ino uint64 // inode number. |
| Nlink uint64 // number of hard links. |
| Mode uint32 // permission and mode bits. |
| Uid int // user id of owner. |
| Gid int // group id of owner. |
| Rdev uint64 // device type for special file. |
| Size int64 // length in bytes. |
| Blksize int64 // size of blocks, in bytes. |
| Blocks int64 // number of blocks allocated for file. |
| Atime_ns int64 // access time; nanoseconds since epoch. |
| Mtime_ns int64 // modified time; nanoseconds since epoch. |
| Ctime_ns int64 // status change time; nanoseconds since epoch. |
| Name string // name of file as presented to Open. |
| FollowedSymlink bool // followed a symlink to get this information |
| } |
| |
| // IsFifo reports whether the FileInfo describes a FIFO file. |
| func (f *FileInfo) IsFifo() bool { return (f.Mode & syscall.S_IFMT) == syscall.S_IFIFO } |
| |
| // IsChar reports whether the FileInfo describes a character special file. |
| func (f *FileInfo) IsChar() bool { return (f.Mode & syscall.S_IFMT) == syscall.S_IFCHR } |
| |
| // IsDirectory reports whether the FileInfo describes a directory. |
| func (f *FileInfo) IsDirectory() bool { return (f.Mode & syscall.S_IFMT) == syscall.S_IFDIR } |
| |
| // IsBlock reports whether the FileInfo describes a block special file. |
| func (f *FileInfo) IsBlock() bool { return (f.Mode & syscall.S_IFMT) == syscall.S_IFBLK } |
| |
| // IsRegular reports whether the FileInfo describes a regular file. |
| func (f *FileInfo) IsRegular() bool { return (f.Mode & syscall.S_IFMT) == syscall.S_IFREG } |
| |
| // IsSymlink reports whether the FileInfo describes a symbolic link. |
| func (f *FileInfo) IsSymlink() bool { return (f.Mode & syscall.S_IFMT) == syscall.S_IFLNK } |
| |
| // IsSocket reports whether the FileInfo describes a socket. |
| func (f *FileInfo) IsSocket() bool { return (f.Mode & syscall.S_IFMT) == syscall.S_IFSOCK } |
| |
| // Permission returns the file permission bits. |
| func (f *FileInfo) Permission() uint32 { return f.Mode & 0777 } |