Skip to content

Instantly share code, notes, and snippets.

@jim3ma
Forked from anonymous/gist:5543343
Created July 31, 2019 03:57
Show Gist options
  • Save jim3ma/3d0ec24c2ecc00db62612596f8ccd6a4 to your computer and use it in GitHub Desktop.
Save jim3ma/3d0ec24c2ecc00db62612596f8ccd6a4 to your computer and use it in GitHub Desktop.

Revisions

  1. @invalid-email-address Anonymous created this gist May 8, 2013.
    37 changes: 37 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,37 @@
    package main

    import (
    "flag"
    "fmt"
    "syscall"
    // #include <sys/sysmacros.h>
    "C"
    )

    var statfile = flag.String("s", "/dev/sda", "default file/device to stat")

    // from: https://github.com/d3zd3z/gosure/blob/master/src/linuxdir/linuxdir.go
    // Extract major and minor numbers.
    // This is a strange linux-modern-libc non-macro version.
    func Major(dev uint64) uint64 {
    return uint64(C.gnu_dev_major((C.ulonglong)(dev)))
    }

    func Minor(dev uint64) uint64 {
    return uint64(C.gnu_dev_minor((C.ulonglong)(dev)))
    }

    func main() {

    flag.Parse()

    // stat := syscall.Statfs_t{}
    stat := syscall.Stat_t{}
    err := syscall.Stat(*statfile, &stat)
    if err != nil {
    fmt.Println("Error", err)
    }
    fmt.Println(stat)
    fmt.Println(Major(stat.Rdev), Minor(stat.Rdev))

    }