Файл перманентных бит в восьмеричной системе Linux - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь получить биты разрешения файла в восьмеричном представлении.Приведенный ниже код печатает его как строку.Есть ли API для печати в Octal или Int?

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$ 

1 Ответ

0 голосов
/ 09 февраля 2019

Например,

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...