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.
5 //go:build aix || darwin || dragonfly || freebsd || hurd || (js && wasm) || linux || netbsd || openbsd || solaris
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
) {
17 return nil, ErrInvalid
20 err
:= f
.pfd
.Fstat(&fs
.sys
)
22 return nil, &PathError
{Op
: "stat", Path
: f
.name
, Err
: err
}
24 fillFileStatFromSys(&fs
, f
.name
)
28 // statNolog stats a file with no test logging.
29 func statNolog(name
string) (FileInfo
, error
) {
31 err
:= ignoringEINTR(func() error
{
32 return syscall
.Stat(name
, &fs
.sys
)
35 return nil, &PathError
{Op
: "stat", Path
: name
, Err
: err
}
37 fillFileStatFromSys(&fs
, name
)
41 // lstatNolog lstats a file with no test logging.
42 func lstatNolog(name
string) (FileInfo
, error
) {
44 err
:= ignoringEINTR(func() error
{
45 return syscall
.Lstat(name
, &fs
.sys
)
48 return nil, &PathError
{Op
: "lstat", Path
: name
, Err
: err
}
50 fillFileStatFromSys(&fs
, name
)