| 123456789101112131415161718192021222324 |
- // +build !windows,!netbsd,!openbsd,!solaris
- package du
- import (
- "path/filepath"
- "syscall"
- )
- // Get returns the Usage of a given path, or an error if usage data is
- // unavailable.
- func Get(path string) (Usage, error) {
- var stat syscall.Statfs_t
- err := syscall.Statfs(filepath.Clean(path), &stat)
- if err != nil {
- return Usage{}, err
- }
- u := Usage{
- FreeBytes: int64(stat.Bfree) * int64(stat.Bsize),
- TotalBytes: int64(stat.Blocks) * int64(stat.Bsize),
- AvailBytes: int64(stat.Bavail) * int64(stat.Bsize),
- }
- return u, nil
- }
|