...

Source file src/os/stat_unix.go

     1	// Copyright 2016 The Go Authors. All rights reserved.
     2	// Use of this source code is governed by a BSD-style
     3	// license that can be found in the LICENSE file.
     4	
     5	// +build aix darwin dragonfly freebsd js,wasm linux nacl netbsd openbsd solaris
     6	
     7	package os
     8	
     9	import (
    10		"syscall"
    11	)
    12	
    13	// Stat returns the FileInfo structure describing file.
    14	// If there is an error, it will be of type *PathError.
    15	func (f *File) Stat() (FileInfo, error) {
    16		if f == nil {
    17			return nil, ErrInvalid
    18		}
    19		var fs fileStat
    20		err := f.pfd.Fstat(&fs.sys)
    21		if err != nil {
    22			return nil, &PathError{"stat", f.name, err}
    23		}
    24		fillFileStatFromSys(&fs, f.name)
    25		return &fs, nil
    26	}
    27	
    28	// statNolog stats a file with no test logging.
    29	func statNolog(name string) (FileInfo, error) {
    30		var fs fileStat
    31		err := syscall.Stat(name, &fs.sys)
    32		if err != nil {
    33			return nil, &PathError{"stat", name, err}
    34		}
    35		fillFileStatFromSys(&fs, name)
    36		return &fs, nil
    37	}
    38	
    39	// lstatNolog lstats a file with no test logging.
    40	func lstatNolog(name string) (FileInfo, error) {
    41		var fs fileStat
    42		err := syscall.Lstat(name, &fs.sys)
    43		if err != nil {
    44			return nil, &PathError{"lstat", name, err}
    45		}
    46		fillFileStatFromSys(&fs, name)
    47		return &fs, nil
    48	}
    49	

View as plain text