| 1234567891011121314151617181920212223 |
- package proc
- import "syscall"
- type FSStat struct {
- CapacityBytes uint64
- UsedBytes uint64
- ReservedBytes uint64
- }
- func StatFS(dirPath string) (FSStat, error) {
- var s syscall.Statfs_t
- if err := syscall.Statfs(dirPath, &s); err != nil {
- return FSStat{}, err
- }
- res := FSStat{
- CapacityBytes: s.Blocks * uint64(s.Bsize),
- UsedBytes: (s.Blocks - s.Bfree) * uint64(s.Bsize),
- ReservedBytes: (s.Bfree - s.Bavail) * uint64(s.Bsize),
- }
- return res, nil
- }
|