Я пытаюсь получить биты прав доступа к файлу в восьмеричном представлении. Приведенный ниже код печатает его как строку. Есть ли API для печати в Octal или инт?
import "os"
import "fmt"
func main() {
m, _ := os.Stat("test.go")
perm := m.Mode().Perm()
fmt.Println(perm)
}
$:~/gocode/ws/gocode$ go run perm.go
-rw-rw-r--
@:~/gocode/ws/gocode$

Например,
package main
import (
"fmt"
"os"
"strconv"
)
func main() {
fi, err := os.Stat("test.go")
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
perm := fi.Mode().Perm()
fmt.Println(perm)
fmt.Printf("%o\n", perm)
fmt.Printf("%#o\n", perm)
fmt.Println(strconv.FormatUint(uint64(perm), 8))
fmt.Println("0" + strconv.FormatUint(uint64(perm), 8))
}
Вывод:
-rw-rw-r--
664
0664
664
0664