猿问

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

func stringToInt(s string) int {

    i, err := strconv.Atoi(s)

    check(err)

    return i

}


os.FileMode(stringToInt("0777"))

当不需要转换为 int 时(不删除前导零)通过直接设置权限:


os.FileMode(0777)

文件权限正确


当前结果


777

777

-r----x--x

753

753

--wxrw---x

500

500

-rwxrw-r--

预期结果


777

-rwxrwxrwx

753

-r-xr-x-wx

500

-r-x------


DIEA
浏览 144回答 1
1回答

青春有我

根据@AdamSmith 和@JamesHenstridge 的评论,以下解决了该问题:mode, _ := strconv.ParseInt(fileAttributes["mode"], 8, 32)0777511-rwxrwxrwx0753491-r-xr-x-wx0500320-r-x------但是,当删除前导零时,结果完全相同:777511-rwxrwxrwx753491-r-xr-x-wx500320-r-x------总之,根本不需要前导零。导致问题的是不正确的类型。
随时随地看视频慕课网APP

相关分类

Go
我要回答