Heim >Backend-Entwicklung >Golang >Wie kann ich auf verschiedenen Betriebssystemen freien Speicherplatz in Go erhalten?
Freien Speicherplatz in Go auf mehreren Plattformen abrufen
In diesem Artikel untersuchen wir eine Lösung zum dynamischen Abrufen der freien und Gesamtgröße von ein Speichervolume mit Go, unabhängig vom Betriebssystem (Windows, Linux, Mac). Diese Lösung macht externe Befehle wie df -h oder manuelle Berechnungen überflüssig.
Für POSIX-basierte Systeme nutzen wir die Funktion sys.unix.Statfs, um auf die Statfs_t-Struktur zuzugreifen. Um beispielsweise den freien Speicherplatz für das aktuelle Arbeitsverzeichnis in Bytes zu erhalten:
import "golang.org/x/sys/unix" import "os" var stat unix.Statfs_t wd, err := os.Getwd() unix.Statfs(wd, &stat) // Available blocks * size per block = available space in bytes fmt.Println(stat.Bavail * uint64(stat.Bsize))
Im Fall von Windows verwenden wir den Systemaufruf-Ansatz. Hier ist ein aktualisiertes Beispiel mit dem neueren sys/windows-Paket:
import "golang.org/x/sys/windows" var freeBytesAvailable uint64 var totalNumberOfBytes uint64 var totalNumberOfFreeBytes uint64 err := windows.GetDiskFreeSpaceEx(windows.StringToUTF16Ptr("C:"), &freeBytesAvailable, &totalNumberOfBytes, &totalNumberOfFreeBytes)
Zögern Sie nicht, diese Beispiele für eine breitere Nutzung in ein plattformübergreifendes Paket zu erweitern. Hinweise zur plattformübergreifenden Implementierung finden Sie in der Hilfedokumentation des Build-Tools.
Das obige ist der detaillierte Inhalt vonWie kann ich auf verschiedenen Betriebssystemen freien Speicherplatz in Go erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!