Биты разрешения файла в восьмеричном формате в Linux в Go

Я пытаюсь получить биты прав доступа к файлу в восьмеричном представлении. Приведенный ниже код печатает его как строку. Есть ли 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$ 
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
2
0
509
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Например,

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

Другие вопросы по теме