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 // +build aix darwin dragonfly freebsd linux nacl 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
{"stat", f
.name
, err
}
24 fillFileStatFromSys(&fs
, f
.name
)
28 // Stat returns a FileInfo describing the named file.
29 // If there is an error, it will be of type *PathError.
30 func Stat(name
string) (FileInfo
, error
) {
32 err
:= syscall
.Stat(name
, &fs
.sys
)
34 return nil, &PathError
{"stat", name
, err
}
36 fillFileStatFromSys(&fs
, name
)
40 // Lstat returns a FileInfo describing the named file.
41 // If the file is a symbolic link, the returned FileInfo
42 // describes the symbolic link. Lstat makes no attempt to follow the link.
43 // If there is an error, it will be of type *PathError.
44 func Lstat(name
string) (FileInfo
, error
) {
46 err
:= syscall
.Lstat(name
, &fs
.sys
)
48 return nil, &PathError
{"lstat", name
, err
}
50 fillFileStatFromSys(&fs
, name
)