2 回答

TA貢獻1827條經(jīng)驗 獲得超8個贊
您可以使用syscall.Statfs。它的參數(shù)是一個路徑名和一個指向Statfs_t結(jié)構(gòu)的指針。它用包含路徑名指定的文件或目錄的文件系統(tǒng)的統(tǒng)計信息填充結(jié)構(gòu)。通常您會使用.或/或掛載點的路徑名。
這是一個以路徑名作為參數(shù)并顯示 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條經(jīng)驗 獲得超4個贊
在你提到的系統(tǒng)上,macOs 和 Ubuntu,你可以使用
func Fstatfs(fd int, buf *Statfs_t) (err error)
.
假設(shè)調(diào)用沒有錯誤,輸入?yún)?shù)*unix.Statfs_t
將被更新。unix.Fstatfs
unix.Statfs_t.Files
和分別是對應(yīng)于調(diào)用的第一個參數(shù)unix.Statfs_t.Ffree
的文件系統(tǒng)的 inode 總數(shù)和空閑 inode 數(shù)。fd
unix.Fstatfs
- 2 回答
- 0 關(guān)注
- 182 瀏覽
添加回答
舉報