英文:
How to convert filemode to int?
问题
示例代码:
func main() {
p, _ := os.Open(os.Args[1])
m, _ := p.Stat()
println(m.Mode().Perm().String())
}
文件的模式为 0775
(-rwxrwxr-x
)。像这样运行它:
./main main
输出结果为 509
。
第二个示例代码:
func main() {
p, _ := os.Open(os.Args[1])
m, _ := p.Stat()
println(m.Mode().Perm().String())
}
这段代码输出 -rwxrwxr-x
。
如何以 0775
的格式获取模式?
英文:
Sample code:
func main() {
p, _ := os.Open(os.Args[1])
m, _ := p.Stat()
println(m.Mode().Perm())
}
File has mode 0775
(-rwxrwxr-x
). Running it like:
>./main main
Prints 509
And second:
func main() {
p, _ := os.Open(os.Args[1])
m, _ := p.Stat()
println(m.Mode().Perm().String())
}
This code prints -rwxrwxr-x
.
How I can get mode in format 0775
?
答案1
得分: 7
值509
是权限位的十进制(十进制)表示形式。
形式0775
是八进制(八进制)表示形式。您可以使用%o
占位符将数字打印为八进制表示形式:
perm := 509
fmt.Printf("%o", perm)
输出结果(在Go Playground上尝试):
775
如果您希望输出为4位数(在这种情况下带有前导0
),请使用格式字符串"%04o"
:
fmt.Printf("%04o", perm) // 输出结果:0775
英文:
The value 509
is the decimal (base 10) representation of the permission bits.
The form 0775
is the octal representation (base 8). You can print a number in octal representation using the %o
verb:
perm := 509
fmt.Printf("%o", perm)
Output (try it on the Go Playground):
775
If you want the output to be 4 digits (with a leading 0
in this case), use the format string "%04o"
:
fmt.Printf("%04o", perm) // Output: 0775
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论