样例代码:
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/