2 回答
TA贡献1827条经验 获得超8个赞
您可以使用syscall.Statfs。它的参数是一个路径名和一个指向Statfs_t结构的指针。它用包含路径名指定的文件或目录的文件系统的统计信息填充结构。通常您会使用.或/或挂载点的路径名。
这是一个以路径名作为参数并显示 inode 信息的 Go 程序。
package main
import (
"fmt"
"os"
"syscall"
)
func main() {
var statfs syscall.Statfs_t
path := os.Args[1]
if err := syscall.Statfs(path, &statfs); err != nil {
fmt.Fprintf(os.Stderr, "Cannot stat %s: %v\n", path, err)
os.Exit(1)
}
fmt.Printf("Inodes: total %d, free %d\n", statfs.Files, statfs.Ffree)
}
TA贡献1752条经验 获得超4个赞
在你提到的系统上,macOs 和 Ubuntu,你可以使用
func Fstatfs(fd int, buf *Statfs_t) (err error)
.
假设调用没有错误,输入参数*unix.Statfs_t
将被更新。unix.Fstatfs
unix.Statfs_t.Files
和分别是对应于调用的第一个参数unix.Statfs_t.Ffree
的文件系统的 inode 总数和空闲 inode 数。fd
unix.Fstatfs
- 2 回答
- 0 关注
- 146 浏览
添加回答
举报