为了账号安全,请及时绑定邮箱和手机立即绑定

为什么使用 Golang 设置的文件权限与预期不同?

为什么使用 Golang 设置的文件权限与预期不同?

Go
DIEA 2021-11-29 19:20:25
func stringToInt(s string) int {    i, err := strconv.Atoi(s)    check(err)    return i}os.FileMode(stringToInt("0777"))当不需要转换为 int 时(不删除前导零)通过直接设置权限:os.FileMode(0777)文件权限正确当前结果777777-r----x--x753753--wxrw---x500500-rwxrw-r--预期结果777-rwxrwxrwx753-r-xr-x-wx500-r-x------
查看完整描述

1 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

根据@AdamSmith 和@JamesHenstridge 的评论,以下解决了该问题:


mode, _ := strconv.ParseInt(fileAttributes["mode"], 8, 32)


0777

511

-rwxrwxrwx

0753

491

-r-xr-x-wx

0500

320

-r-x------

但是,当删除前导零时,结果完全相同:


777

511

-rwxrwxrwx

753

491

-r-xr-x-wx

500

320

-r-x------

总之,根本不需要前导零。导致问题的是不正确的类型。


查看完整回答
反对 回复 2021-11-29
  • 1 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信