样例代码:

func main() {
    p, _ := os.Open(os.Args[1])
    m, _ := p.Stat()
    println(m.Mode().Perm())
}

文件的模式为0775(-rwxrwxr-x)。像这样运行:



打印509
第二:
func main() {
    p, _ := os.Open(os.Args[1])
    m, _ := p.Stat()
    println(m.Mode().Perm().String())
}

此代码显示-rwxrwxr-x

如何获得0775格式的模式?

最佳答案

509是权限位的十进制(基数为10)。
0775的形式是八进制表示形式(以8为底)。您可以使用%o动词以八进制表示形式打印数字:

perm := 509
fmt.Printf("%o", perm)

输出(在Go Playground上尝试):
775

如果您希望输出为4位数字(在这种情况下,前面带有0),请使用格式字符串"%04o":
fmt.Printf("%04o", perm) // Output: 0775

关于go - 如何将filemode转换为int?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41259439/

10-12 15:56