doudanglang5826 2015-12-25 01:53
浏览 169
已采纳

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

func stringToInt(s string) int {
    i, err := strconv.Atoi(s)
    check(err)
    return i
}

os.FileMode(stringToInt("0777"))

when no conversion to int is required (leading zero is not removed) by setting the permission directly:

os.FileMode(0777)

the file permissions are correct

Current outcome

777
777
-r----x--x
753
753
--wxrw---x
500
500
-rwxrw-r--

Expected outcome

777
-rwxrwxrwx
753
-r-xr-x-wx
500
-r-x------
  • 写回答

1条回答 默认 最新

  • doumou1864 2015-12-25 15:48
    关注

    Based on the comments of @AdamSmith and @JamesHenstridge the following solves the issue:

    mode, _ := strconv.ParseInt(fileAttributes["mode"], 8, 32)
    
    0777
    511
    -rwxrwxrwx
    0753
    491
    -r-xr-x-wx
    0500
    320
    -r-x------
    

    However when the leading zeros have been removed the outcome is exactly the same:

    777
    511
    -rwxrwxrwx
    753
    491
    -r-xr-x-wx
    500
    320
    -r-x------
    

    In conclusion, the leading zeros are not required at all. It was the incorrect type that was causing the issue.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景